1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-14 09:39:42 +00:00
emacs/lisp/textmodes/bibtex.el

4781 lines
216 KiB
EmacsLisp
Raw Normal View History

1992-05-30 23:54:21 +00:00
;;; bibtex.el --- BibTeX mode for GNU Emacs
2006-12-09 04:06:06 +00:00
;; Copyright (C) 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2010-01-13 08:35:10 +00:00
;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
1992-07-22 04:22:30 +00:00
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
;; Author: Stefan Schoef <schoef@offis.uni-oldenburg.de>
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Bengt Martensson <bengt@mathematik.uni-Bremen.de>
;; Marc Shapiro <marc.shapiro@acm.org>
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Mike Newton <newton@gumby.cs.caltech.edu>
;; Aaron Larson <alarson@src.honeywell.com>
;; Dirk Herrmann <D.Herrmann@tu-bs.de>
2002-06-17 01:02:21 +00:00
;; Maintainer: Roland Winkler <roland.winkler@physik.uni-erlangen.de>
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
;; Keywords: BibTeX, LaTeX, TeX
1992-07-17 07:10:46 +00:00
1991-05-09 21:50:45 +00:00
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
1991-05-09 21:50:45 +00:00
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
1991-05-09 21:50:45 +00:00
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
1991-05-09 21:50:45 +00:00
;;; Commentary:
1996-01-14 07:34:30 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
;; Major mode for editing and validating BibTeX files.
1992-07-16 21:47:34 +00:00
;; Usage:
;; See documentation for `bibtex-mode' or type "M-x describe-mode"
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; when you are in BibTeX mode.
1992-07-16 21:47:34 +00:00
;; Todo:
;; Distribute texinfo file.
;;; Code:
1996-01-14 07:34:30 +00:00
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(require 'button)
;; User Options:
1992-07-16 21:47:34 +00:00
1997-08-22 02:05:30 +00:00
(defgroup bibtex nil
"BibTeX mode."
1997-08-22 02:05:30 +00:00
:group 'tex
:prefix "bibtex-")
(defgroup bibtex-autokey nil
"Generate automatically a key from the author/editor and the title field."
1997-08-22 02:05:30 +00:00
:group 'bibtex
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:prefix "bibtex-autokey-")
1997-08-22 02:05:30 +00:00
(defcustom bibtex-mode-hook nil
"List of functions to call on entry to BibTeX mode."
:group 'bibtex
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:type 'hook)
1997-08-22 02:05:30 +00:00
(defcustom bibtex-field-delimiters 'braces
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Type of field delimiters. Allowed values are `braces' or `double-quotes'."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(choice (const braces)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const double-quotes)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-entry-delimiters 'braces
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Type of entry delimiters. Allowed values are `braces' or `parentheses'."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(choice (const braces)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const parentheses)))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-include-OPTcrossref '("InProceedings" "InCollection")
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"List of BibTeX entries that get an OPTcrossref field."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(repeat string))
1992-07-16 21:47:34 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-include-OPTkey t
"If non-nil, all newly created entries get an OPTkey field.
If this is a string, use it as the initial field text.
If this is a function, call it to generate the initial field text."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(choice (const :tag "None" nil)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(string :tag "Initial text")
(function :tag "Initialize Function")
(const :tag "Default" t)))
(put 'bibtex-include-OPTkey 'risky-local-variable t)
1997-08-22 02:05:30 +00:00
(defcustom bibtex-user-optional-fields
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
'(("annote" "Personal annotation (ignored)"))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"List of optional fields the user wants to have always present.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Entries should be of the same form as the OPTIONAL and
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
CROSSREF-OPTIONAL lists in `bibtex-entry-field-alist' (which see)."
1997-08-22 02:05:30 +00:00
:group 'bibtex
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:type '(repeat (group (string :tag "Field")
(string :tag "Comment")
(option (choice :tag "Init"
(const nil) string function)))))
(put 'bibtex-user-optional-fields 'risky-local-variable t)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defcustom bibtex-entry-format
'(opts-or-alts required-fields numerical-fields)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Type of formatting performed by `bibtex-clean-entry'.
It may be t, nil, or a list of symbols out of the following:
1997-08-22 02:23:24 +00:00
opts-or-alts Delete empty optional and alternative fields and
remove OPT and ALT prefixes from used fields.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
required-fields Signal an error if a required field is missing.
1997-08-22 02:23:24 +00:00
numerical-fields Delete delimiters around numeral fields.
page-dashes Change double dashes in page field to single dash
(for scribe compatibility).
whitespace Delete whitespace at the beginning and end of fields.
inherit-booktitle If entry contains a crossref field and the booktitle
field is empty, set the booktitle field to the content
of the title field of the crossreferenced entry.
1997-08-22 02:23:24 +00:00
realign Realign entries, so that field texts and perhaps equal
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
signs (depending on the value of
`bibtex-align-at-equal-sign') begin in the same column.
Also fill fields.
1997-08-22 02:23:24 +00:00
last-comma Add or delete comma on end of last field in entry,
according to value of `bibtex-comma-after-last-field'.
delimiters Change delimiters according to variables
`bibtex-field-delimiters' and `bibtex-entry-delimiters'.
unify-case Change case of entry types and field names.
braces Enclose parts of field entries by braces according to
`bibtex-field-braces-alist'.
strings Replace parts of field entries by string constants
according to `bibtex-field-strings-alist'.
1997-08-22 02:23:24 +00:00
The value t means do all of the above formatting actions.
The value nil means do no formatting at all."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(choice (const :tag "None" nil)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const :tag "All" t)
(set :menu-tag "Some"
(const opts-or-alts)
(const required-fields)
(const numerical-fields)
(const page-dashes)
(const whitespace)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const inherit-booktitle)
(const realign)
(const last-comma)
(const delimiters)
(const unify-case)
(const braces)
(const strings))))
(put 'bibtex-entry-format 'safe-local-variable
(lambda (x)
(or (eq x t)
(let ((OK t))
(while (consp x)
(unless (memq (pop x)
'(opts-or-alts required-fields numerical-fields
page-dashes whitespace inherit-booktitle realign
last-comma delimiters unify-case braces strings))
(setq OK nil)))
(unless (null x) (setq OK nil))
OK))))
(defcustom bibtex-field-braces-alist nil
"Alist of field regexps that \\[bibtex-clean-entry] encloses by braces.
Each element has the form (FIELDS REGEXP), where FIELDS is a list
of BibTeX field names and REGEXP is a regexp.
Space characters in REGEXP will be replaced by \"[ \\t\\n]+\"."
:group 'bibtex
:type '(repeat (list (repeat (string :tag "field name"))
(choice (regexp :tag "regexp")
(sexp :tag "sexp")))))
(defcustom bibtex-field-strings-alist nil
"Alist of regexps that \\[bibtex-clean-entry] replaces by string constants.
Each element has the form (FIELDS REGEXP TO-STR), where FIELDS is a list
of BibTeX field names. In FIELDS search for REGEXP, which are replaced
by the BibTeX string constant TO-STR.
Space characters in REGEXP will be replaced by \"[ \\t\\n]+\"."
:group 'bibtex
:type '(repeat (list (repeat (string :tag "field name"))
(regexp :tag "From regexp")
(regexp :tag "To string constant"))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-clean-entry-hook nil
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"List of functions to call when entry has been cleaned.
1997-08-22 02:23:24 +00:00
Functions are called with point inside the cleaned entry, and the buffer
1997-08-22 02:05:30 +00:00
narrowed to just the entry."
:group 'bibtex
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:type 'hook)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-maintain-sorted-entries nil
"If non-nil, BibTeX mode maintains all entries in sorted order.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Allowed non-nil values are:
plain or t All entries are sorted alphabetically.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
crossref All entries are sorted alphabetically unless an entry has a
crossref field. These crossrefed entries are placed in
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
alphabetical order immediately preceding the main entry.
entry-class The entries are divided into classes according to their
entry type, see `bibtex-sort-entry-class'. Within each class
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
the entries are sorted alphabetically.
See also `bibtex-sort-ignore-string-entries'."
:group 'bibtex
:type '(choice (const nil)
(const plain)
(const crossref)
(const entry-class)
(const t)))
(put 'bibtex-maintain-sorted-entries 'safe-local-variable
'(lambda (a) (memq a '(nil t plain crossref entry-class))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defcustom bibtex-sort-entry-class
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
'(("String")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(catch-all)
("Book" "Proceedings"))
"List of classes of BibTeX entry types, used for sorting entries.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If value of `bibtex-maintain-sorted-entries' is `entry-class'
entries are ordered according to the classes they belong to. Each
class contains a list of entry types. An entry `catch-all' applies
to all entries not explicitly mentioned."
:group 'bibtex
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
:type '(repeat (choice :tag "Class"
(const :tag "catch-all" (catch-all))
(repeat :tag "Entry type" string))))
(put 'bibtex-sort-entry-class 'safe-local-variable
(lambda (x) (let ((OK t))
(while (consp x)
(let ((y (pop x)))
(while (consp y)
(let ((z (pop y)))
(unless (or (stringp z) (eq z 'catch-all))
(setq OK nil))))
(unless (null y) (setq OK nil))))
(unless (null x) (setq OK nil))
OK)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defcustom bibtex-sort-ignore-string-entries t
"If non-nil, BibTeX @String entries are not sort-significant.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
That means they are ignored when determining ordering of the buffer
\(e.g., sorting, locating alphabetical position for new entries, etc.)."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'boolean)
1997-08-22 02:05:30 +00:00
(defcustom bibtex-field-kill-ring-max 20
"Max length of `bibtex-field-kill-ring' before discarding oldest elements."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defcustom bibtex-entry-kill-ring-max 20
"Max length of `bibtex-entry-kill-ring' before discarding oldest elements."
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
:group 'bibtex
:type 'integer)
1997-08-22 02:05:30 +00:00
(defcustom bibtex-parse-keys-timeout 60
"Time interval in seconds for parsing BibTeX buffers during idle time.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Parsing initializes `bibtex-reference-keys' and `bibtex-strings'."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'integer)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defcustom bibtex-parse-keys-fast t
"If non-nil, use fast but simplified algorithm for parsing BibTeX keys.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If parsing fails, try to set this variable to nil."
:group 'bibtex
:type 'boolean)
(defcustom bibtex-entry-field-alist
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
'(("Article"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the article (BibTeX converts it to lowercase)")
("journal" "Name of the journal (use string, remove braces)")
("year" "Year of publication"))
(("volume" "Volume of the journal")
("number" "Number of the journal (only allowed if entry contains volume)")
("pages" "Pages in the journal")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem")))
((("author" "Author1 [and Author2 ...] [and others]")
("title" "Title of the article (BibTeX converts it to lowercase)"))
(("pages" "Pages in the journal")
("journal" "Name of the journal (use string, remove braces)")
("year" "Year of publication")
("volume" "Volume of the journal")
("number" "Number of the journal")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Book"
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((("author" "Author1 [and Author2 ...] [and others]" nil t)
("editor" "Editor1 [and Editor2 ...] [and others]" nil t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the book")
("publisher" "Publishing company")
("year" "Year of publication"))
(("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem")))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((("author" "Author1 [and Author2 ...] [and others]" nil t)
("editor" "Editor1 [and Editor2 ...] [and others]" nil t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the book"))
(("publisher" "Publishing company")
("year" "Year of publication")
("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Booklet"
((("title" "Title of the booklet (BibTeX converts it to lowercase)"))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(("author" "Author1 [and Author2 ...] [and others]")
("howpublished" "The way in which the booklet was published")
("address" "Address of the publisher")
("month" "Month of the publication as a string (remove braces)")
("year" "Year of publication")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("InBook"
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((("author" "Author1 [and Author2 ...] [and others]" nil t)
("editor" "Editor1 [and Editor2 ...] [and others]" nil t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the book")
("chapter" "Chapter in the book")
("publisher" "Publishing company")
("year" "Year of publication"))
(("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("type" "Word to use instead of \"chapter\"")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("pages" "Pages in the book")
("note" "Remarks to be put at the end of the \\bibitem")))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((("author" "Author1 [and Author2 ...] [and others]" nil t)
("editor" "Editor1 [and Editor2 ...] [and others]" nil t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the book")
("chapter" "Chapter in the book"))
(("pages" "Pages in the book")
("publisher" "Publishing company")
("year" "Year of publication")
("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("type" "Word to use instead of \"chapter\"")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("InCollection"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the article in book (BibTeX converts it to lowercase)")
("booktitle" "Name of the book")
("publisher" "Publishing company")
("year" "Year of publication"))
(("editor" "Editor1 [and Editor2 ...] [and others]")
("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("type" "Word to use instead of \"chapter\"")
("chapter" "Chapter in the book")
("pages" "Pages in the book")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem")))
((("author" "Author1 [and Author2 ...] [and others]")
("title" "Title of the article in book (BibTeX converts it to lowercase)")
("booktitle" "Name of the book"))
(("pages" "Pages in the book")
("publisher" "Publishing company")
("year" "Year of publication")
("editor" "Editor1 [and Editor2 ...] [and others]")
("volume" "Volume of the book in the series")
("number" "Number of the book in a small series (overwritten by volume)")
("series" "Series in which the book appeared")
("type" "Word to use instead of \"chapter\"")
("chapter" "Chapter in the book")
("address" "Address of the publisher")
("edition" "Edition of the book as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("InProceedings"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")
("booktitle" "Name of the conference proceedings")
("year" "Year of publication"))
(("editor" "Editor1 [and Editor2 ...] [and others]")
("volume" "Volume of the conference proceedings in the series")
("number" "Number of the conference proceedings in a small series (overwritten by volume)")
("series" "Series in which the conference proceedings appeared")
("pages" "Pages in the conference proceedings")
("address" "Location of the Proceedings")
("month" "Month of the publication as a string (remove braces)")
("organization" "Sponsoring organization of the conference")
("publisher" "Publishing company, its location")
("note" "Remarks to be put at the end of the \\bibitem")))
((("author" "Author1 [and Author2 ...] [and others]")
("title" "Title of the article in proceedings (BibTeX converts it to lowercase)"))
(("booktitle" "Name of the conference proceedings")
("pages" "Pages in the conference proceedings")
("year" "Year of publication")
("editor" "Editor1 [and Editor2 ...] [and others]")
("volume" "Volume of the conference proceedings in the series")
("number" "Number of the conference proceedings in a small series (overwritten by volume)")
("series" "Series in which the conference proceedings appeared")
("address" "Location of the Proceedings")
("month" "Month of the publication as a string (remove braces)")
("organization" "Sponsoring organization of the conference")
("publisher" "Publishing company, its location")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Manual"
((("title" "Title of the manual"))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(("author" "Author1 [and Author2 ...] [and others]")
("organization" "Publishing organization of the manual")
("address" "Address of the organization")
("edition" "Edition of the manual as a capitalized English word")
("month" "Month of the publication as a string (remove braces)")
("year" "Year of publication")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("MastersThesis"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the master\'s thesis (BibTeX converts it to lowercase)")
("school" "School where the master\'s thesis was written")
("year" "Year of publication"))
(("type" "Type of the master\'s thesis (if other than \"Master\'s thesis\")")
("address" "Address of the school (if not part of field \"school\") or country")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Misc"
(()
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(("author" "Author1 [and Author2 ...] [and others]")
("title" "Title of the work (BibTeX converts it to lowercase)")
("howpublished" "The way in which the work was published")
("month" "Month of the publication as a string (remove braces)")
("year" "Year of publication")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("PhdThesis"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the PhD. thesis")
("school" "School where the PhD. thesis was written")
("year" "Year of publication"))
(("type" "Type of the PhD. thesis")
("address" "Address of the school (if not part of field \"school\") or country")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Proceedings"
((("title" "Title of the conference proceedings")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("year" "Year of publication"))
(("booktitle" "Title of the proceedings for cross references")
("editor" "Editor1 [and Editor2 ...] [and others]")
("volume" "Volume of the conference proceedings in the series")
("number" "Number of the conference proceedings in a small series (overwritten by volume)")
("series" "Series in which the conference proceedings appeared")
("address" "Location of the Proceedings")
("month" "Month of the publication as a string (remove braces)")
("organization" "Sponsoring organization of the conference")
("publisher" "Publishing company, its location")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("TechReport"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the technical report (BibTeX converts it to lowercase)")
("institution" "Sponsoring institution of the report")
("year" "Year of publication"))
(("type" "Type of the report (if other than \"technical report\")")
("number" "Number of the technical report")
("address" "Address of the institution (if not part of field \"institution\") or country")
("month" "Month of the publication as a string (remove braces)")
("note" "Remarks to be put at the end of the \\bibitem"))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Unpublished"
((("author" "Author1 [and Author2 ...] [and others]")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
("title" "Title of the unpublished work (BibTeX converts it to lowercase)")
("note" "Remarks to be put at the end of the \\bibitem"))
(("month" "Month of the publication as a string (remove braces)")
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
("year" "Year of publication")))))
"List of BibTeX entry types and their associated fields.
List elements are triples
\(ENTRY-TYPE (REQUIRED OPTIONAL) (CROSSREF-REQUIRED CROSSREF-OPTIONAL)).
ENTRY-TYPE is the type of a BibTeX entry. The remaining pairs contain
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
the required and optional fields of the BibTeX entry.
The second pair is used if a crossref field is present
and the first pair is used if a crossref field is absent.
If the second pair is nil, the first pair is always used.
REQUIRED, OPTIONAL, CROSSREF-REQUIRED and CROSSREF-OPTIONAL are lists.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Each element of these lists is a list of the form
\(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG).
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
COMMENT-STRING, INIT, and ALTERNATIVE-FLAG are optional.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
FIELD-NAME is the name of the field, COMMENT-STRING is the comment that
appears in the echo area, INIT is either the initial content of the
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
field or a function, which is called to determine the initial content
of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the
1997-08-22 02:23:24 +00:00
field is an alternative. ALTERNATIVE-FLAG may be t only in the
REQUIRED or CROSSREF-REQUIRED lists."
:group 'bibtex
:type '(repeat (group (string :tag "Entry type")
(group (repeat :tag "Required fields"
(group (string :tag "Field")
(string :tag "Comment")
(option (choice :tag "Init" :value nil
(const nil) string function))
(option (choice :tag "Alternative"
(const :tag "No" nil)
(const :tag "Yes" t)))))
(repeat :tag "Optional fields"
(group (string :tag "Field")
(string :tag "Comment")
(option (choice :tag "Init" :value nil
(const nil) string function)))))
(option :extra-offset -4
(group (repeat :tag "Crossref: required fields"
(group (string :tag "Field")
(string :tag "Comment")
(option (choice :tag "Init" :value nil
(const nil) string function))
(option (choice :tag "Alternative"
(const :tag "No" nil)
(const :tag "Yes" t)))))
(repeat :tag "Crossref: optional fields"
(group (string :tag "Field")
(string :tag "Comment")
(option (choice :tag "Init" :value nil
(const nil) string function)))))))))
(put 'bibtex-entry-field-alist 'risky-local-variable t)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defcustom bibtex-comment-start "@Comment"
"String starting a BibTeX comment."
:group 'bibtex
:type 'string)
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-add-entry-hook nil
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"List of functions to call when BibTeX entry has been inserted."
1997-08-22 02:05:30 +00:00
:group 'bibtex
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:type 'hook)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-predefined-month-strings
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
'(("jan" . "January")
("feb" . "February")
("mar" . "March")
("apr" . "April")
("may" . "May")
("jun" . "June")
("jul" . "July")
("aug" . "August")
("sep" . "September")
("oct" . "October")
("nov" . "November")
("dec" . "December"))
"Alist of month string definitions used in the BibTeX style files.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Each element is a pair of strings (ABBREVIATION . EXPANSION)."
1997-08-22 02:05:30 +00:00
:group 'bibtex
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:type '(repeat (cons (string :tag "Month abbreviation")
(string :tag "Month expansion"))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-predefined-strings
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(append
bibtex-predefined-month-strings
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
'(("acmcs" . "ACM Computing Surveys")
("acta" . "Acta Informatica")
("cacm" . "Communications of the ACM")
("ibmjrd" . "IBM Journal of Research and Development")
("ibmsj" . "IBM Systems Journal")
("ieeese" . "IEEE Transactions on Software Engineering")
("ieeetc" . "IEEE Transactions on Computers")
("ieeetcad" . "IEEE Transactions on Computer-Aided Design of Integrated Circuits")
("ipl" . "Information Processing Letters")
("jacm" . "Journal of the ACM")
("jcss" . "Journal of Computer and System Sciences")
("scp" . "Science of Computer Programming")
("sicomp" . "SIAM Journal on Computing")
("tcs" . "Theoretical Computer Science")
("tocs" . "ACM Transactions on Computer Systems")
("tods" . "ACM Transactions on Database Systems")
("tog" . "ACM Transactions on Graphics")
("toms" . "ACM Transactions on Mathematical Software")
("toois" . "ACM Transactions on Office Information Systems")
("toplas" . "ACM Transactions on Programming Languages and Systems")))
"Alist of string definitions used in the BibTeX style files.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Each element is a pair of strings (ABBREVIATION . EXPANSION)."
1997-08-22 02:05:30 +00:00
:group 'bibtex
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:type '(repeat (cons (string :tag "String")
(string :tag "String expansion"))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-string-files nil
"List of BibTeX files containing string definitions.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
List elements can be absolute file names or file names relative
to the directories specified in `bibtex-string-file-path'."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type '(repeat file))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defvar bibtex-string-file-path (getenv "BIBINPUTS")
"*Colon separated list of paths to search for `bibtex-string-files'.")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defcustom bibtex-files nil
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"List of BibTeX files that are searched for entry keys.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
List elements can be absolute file names or file names relative to the
directories specified in `bibtex-file-path'. If an element is a directory,
check all BibTeX files in this directory. If an element is the symbol
`bibtex-file-path', check all BibTeX files in `bibtex-file-path'."
:group 'bibtex
:type '(repeat (choice (const :tag "bibtex-file-path" bibtex-file-path)
directory file)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defvar bibtex-file-path (getenv "BIBINPUTS")
"*Colon separated list of paths to search for `bibtex-files'.")
1997-08-22 02:05:30 +00:00
(defcustom bibtex-help-message t
"If non-nil print help messages in the echo area on entering a new field."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'boolean)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-prefix-string ""
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"String prefix for automatically generated reference keys.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-names 1
"Number of names to use for the automatically generated reference key.
1997-08-22 02:23:24 +00:00
Possibly more names are used according to `bibtex-autokey-names-stretch'.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If this variable is nil, all names are used.
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:type '(choice (const :tag "All" infty)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
integer))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-names-stretch 0
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Number of names that can additionally be used for reference keys.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
These names are used only, if all names are used then.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-additional-names ""
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"String to append to the generated key if not all names could be used.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defcustom bibtex-autokey-expand-strings nil
"If non-nil, expand strings when extracting the content of a BibTeX field.
See `bibtex-generate-autokey' for details."
:group 'bibtex-autokey
:type 'boolean)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defvar bibtex-autokey-transcriptions
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
'(;; language specific characters
("\\\\aa" . "a") ; \aa -> a
("\\\\AA" . "A") ; \AA -> A
("\\\"a\\|\\\\\\\"a\\|\\\\ae" . "ae") ; "a,\"a,\ae -> ae
("\\\"A\\|\\\\\\\"A\\|\\\\AE" . "Ae") ; "A,\"A,\AE -> Ae
("\\\\i" . "i") ; \i -> i
("\\\\j" . "j") ; \j -> j
("\\\\l" . "l") ; \l -> l
("\\\\L" . "L") ; \L -> L
("\\\"o\\|\\\\\\\"o\\|\\\\o\\|\\\\oe" . "oe") ; "o,\"o,\o,\oe -> oe
("\\\"O\\|\\\\\\\"O\\|\\\\O\\|\\\\OE" . "Oe") ; "O,\"O,\O,\OE -> Oe
("\\\"s\\|\\\\\\\"s\\|\\\\3" . "ss") ; "s,\"s,\3 -> ss
("\\\"u\\|\\\\\\\"u" . "ue") ; "u,\"u -> ue
("\\\"U\\|\\\\\\\"U" . "Ue") ; "U,\"U -> Ue
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
;; accents
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b" . "")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
;; braces, quotes, concatenation.
("[`'\"{}#]" . "")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; spaces
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
("\\\\?[ \t\n]+\\|~" . " "))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Alist of (OLD-REGEXP . NEW-STRING) pairs.
1997-08-22 02:23:24 +00:00
Used by the default values of `bibtex-autokey-name-change-strings' and
`bibtex-autokey-titleword-change-strings'. Defaults to translating some
language specific characters to their ASCII transcriptions, and
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
removing any character accents.")
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-name-change-strings
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
bibtex-autokey-transcriptions
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Alist of (OLD-REGEXP . NEW-STRING) pairs.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Any part of a name matching OLD-REGEXP is replaced by NEW-STRING.
1997-08-22 02:23:24 +00:00
Case is significant in OLD-REGEXP. All regexps are tried in the
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
order in which they appear in the list.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:type '(repeat (cons (regexp :tag "Old")
(string :tag "New"))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defcustom bibtex-autokey-name-case-convert-function 'downcase
"Function called for each name to perform case conversion.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:group 'bibtex-autokey
:type '(choice (const :tag "Preserve case" identity)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const :tag "Downcase" downcase)
(const :tag "Capitalize" capitalize)
(const :tag "Upcase" upcase)
(function :tag "Conversion function")))
(put 'bibtex-autokey-name-case-convert-function 'safe-local-variable
(lambda (x) (memq x '(upcase downcase capitalize identity))))
(defvaralias 'bibtex-autokey-name-case-convert
'bibtex-autokey-name-case-convert-function)
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-name-length 'infty
"Number of characters from name to incorporate into key.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
If this is set to anything but a number, all characters are used.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type '(choice (const :tag "All" infty)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
integer))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-name-separator ""
"String that comes between any two names in the key.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-year-length 2
"Number of rightmost digits from the year field to incorporate into key.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defcustom bibtex-autokey-use-crossref t
"If non-nil use fields from crossreferenced entry if necessary.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
If this variable is non-nil and some field has no entry, but a
valid crossref entry, the field from the crossreferenced entry is used.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'boolean)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titlewords 5
"Number of title words to use for the automatically generated reference key.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
If this is set to anything but a number, all title words are used.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Possibly more words from the title are used according to
1997-08-22 02:23:24 +00:00
`bibtex-autokey-titlewords-stretch'.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type '(choice (const :tag "All" infty)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
integer))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defcustom bibtex-autokey-title-terminators "[.!?:;]\\|--"
"Regexp defining the termination of the main part of the title.
Case of the regexps is ignored. See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
:type 'regexp)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titlewords-stretch 2
"Number of words that can additionally be used from the title.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
These words are used only, if a sentence from the title can be ended then.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'integer)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
(defcustom bibtex-autokey-titleword-ignore
'("A" "An" "On" "The" "Eine?" "Der" "Die" "Das"
"[^[:upper:]].*" ".*[^[:upper:][:lower:]0-9].*")
"Determines words from the title that are not to be used in the key.
Each item of the list is a regexp. If a word of the title matches a
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
regexp from that list, it is not included in the title part of the key.
Case is significant. See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type '(repeat regexp))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defcustom bibtex-autokey-titleword-case-convert-function 'downcase
"Function called for each titleword to perform case conversion.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
:group 'bibtex-autokey
:type '(choice (const :tag "Preserve case" identity)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(const :tag "Downcase" downcase)
(const :tag "Capitalize" capitalize)
(const :tag "Upcase" upcase)
(function :tag "Conversion function")))
(defvaralias 'bibtex-autokey-titleword-case-convert
'bibtex-autokey-titleword-case-convert-function)
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titleword-abbrevs nil
"Determines exceptions to the usual abbreviation mechanism.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
An alist of (OLD-REGEXP . NEW-STRING) pairs. Case is ignored
1997-08-22 02:23:24 +00:00
in matching against OLD-REGEXP, and the first matching pair is used.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:group 'bibtex-autokey
:type '(repeat (cons (regexp :tag "Old")
(string :tag "New"))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titleword-change-strings
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
bibtex-autokey-transcriptions
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Alist of (OLD-REGEXP . NEW-STRING) pairs.
1997-08-22 02:23:24 +00:00
Any part of title word matching a OLD-REGEXP is replaced by NEW-STRING.
Case is significant in OLD-REGEXP. All regexps are tried in the
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
order in which they appear in the list.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
:type '(repeat (cons (regexp :tag "Old")
(string :tag "New"))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titleword-length 5
"Number of characters from title words to incorporate into key.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
If this is set to anything but a number, all characters are used.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type '(choice (const :tag "All" infty)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
integer))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-titleword-separator "_"
"String to be put between the title words.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-name-year-separator ""
"String to be put between name part and year part of key.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-year-title-separator ":_"
"String to be put between year part and title part of key.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
See `bibtex-generate-autokey' for details."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'string)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-autokey-edit-before-use t
"If non-nil, user is allowed to edit the generated key before it is used."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type 'boolean)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
(defcustom bibtex-autokey-before-presentation-function nil
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"If non-nil, function to call before generated key is presented.
The function must take one argument (the automatically generated key),
and must return a string (the key to use)."
1997-08-22 02:05:30 +00:00
:group 'bibtex-autokey
:type '(choice (const nil) function))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-entry-offset 0
"Offset for BibTeX entries.
Added to the value of all other variables which determine columns."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-field-indentation 2
"Starting column for the name part in BibTeX fields."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-text-indentation
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(+ bibtex-field-indentation
(length "organization = "))
"Starting column for the text part in BibTeX fields.
1997-08-22 02:05:30 +00:00
Should be equal to the space needed for the longest name part."
:group 'bibtex
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-contline-indentation
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(+ bibtex-text-indentation 1)
"Starting column for continuation lines of BibTeX fields."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'integer)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
1997-08-22 02:05:30 +00:00
(defcustom bibtex-align-at-equal-sign nil
"If non-nil, align fields at equal sign instead of field text.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
If non-nil, the column for the equal sign is the value of
`bibtex-text-indentation', minus 2."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'boolean)
(defcustom bibtex-comma-after-last-field nil
"If non-nil, a comma is put at end of last field in the entry template."
1997-08-22 02:05:30 +00:00
:group 'bibtex
:type 'boolean)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defcustom bibtex-autoadd-commas t
"If non-nil automatically add missing commas at end of BibTeX fields."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
:group 'bibtex
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
:type 'boolean)
(defcustom bibtex-autofill-types '("Proceedings")
"Automatically fill fields if possible for those BibTeX entry types."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
:group 'bibtex
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
:type '(repeat string))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defcustom bibtex-summary-function 'bibtex-summary
"Function to call for generating a summary of current BibTeX entry.
It takes no arguments. Point must be at beginning of entry.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Used by `bibtex-complete-crossref-cleanup' and `bibtex-copy-summary-as-kill'."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
:group 'bibtex
:type '(choice (const :tag "Default" bibtex-summary)
(function :tag "Personalized function")))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(defcustom bibtex-generate-url-list
'((("url" . ".*:.*")))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
"List of schemes for generating the URL of a BibTeX entry.
These schemes are used by `bibtex-url'.
Each scheme should have one of these forms:
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
((FIELD . REGEXP))
((FIELD . REGEXP) STEP...)
((FIELD . REGEXP) STRING STEP...)
FIELD is a field name as returned by `bibtex-parse-entry'.
REGEXP is matched against the text of FIELD. If the match succeeds,
then this scheme is used. If no STRING and STEPs are specified
the matched text is used as the URL, otherwise the URL is built
by evaluating STEPs. If no STRING is specified the STEPs must result
in strings which are concatenated. Otherwise the resulting objects
are passed through `format' using STRING as format control string.
A STEP is a list (FIELD REGEXP REPLACE). The text of FIELD
is matched against REGEXP, and is replaced with REPLACE.
REPLACE can be a string, or a number (which selects the corresponding
submatch), or a function called with the field's text as argument
and with the `match-data' properly set.
Case is always ignored. Always remove the field delimiters.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
If `bibtex-expand-strings' is non-nil, BibTeX strings are expanded
for generating the URL.
Set this variable before loading BibTeX mode.
The following is a complex example, see URL `http://link.aps.org/'.
(((\"journal\" . \"\\\\=<\\(PR[ABCDEL]?\\|RMP\\)\\\\=>\")
\"http://link.aps.org/abstract/%s/v%s/p%s\"
(\"journal\" \".*\" downcase)
(\"volume\" \".*\" 0)
(\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
:group 'bibtex
:type '(repeat
(cons :tag "Scheme"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(cons :tag "Matcher" :extra-offset 4
(string :tag "BibTeX field")
(regexp :tag "Regexp"))
(choice
(const :tag "Take match as is" nil)
(cons :tag "Formatted"
(string :tag "Format control string")
(repeat :tag "Steps to generate URL"
(list (string :tag "BibTeX field")
(regexp :tag "Regexp")
(choice (string :tag "Replacement")
(integer :tag "Sub-match")
(function :tag "Filter")))))
(repeat :tag "Concatenated"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(list (string :tag "BibTeX field")
(regexp :tag "Regexp")
(choice (string :tag "Replacement")
(integer :tag "Sub-match")
(function :tag "Filter"))))))))
(put 'bibtex-generate-url-list 'risky-local-variable t)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defcustom bibtex-cite-matcher-alist
'(("\\\\cite[ \t\n]*{\\([^}]+\\)}" . 1))
"Alist of rules to identify cited keys in a BibTeX entry.
Each rule should be of the form (REGEXP . SUBEXP), where SUBEXP
specifies which parenthesized expression in REGEXP is a cited key.
Case is significant.
Used by `bibtex-search-crossref' and for font-locking.
Set this variable before loading BibTeX mode."
:group 'bibtex
:type '(repeat (cons (regexp :tag "Regexp")
(integer :tag "Number")))
:version "23.1")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defcustom bibtex-expand-strings nil
"If non-nil, expand strings when extracting the content of a BibTeX field."
:group 'bibtex
:type 'boolean)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; `bibtex-font-lock-keywords' is a user option, too. But since the
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
;; patterns used to define this variable are defined in a later
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
;; section of this file, it is defined later.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; Syntax Table and Keybindings
(defvar bibtex-mode-syntax-table
(let ((st (make-syntax-table)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(modify-syntax-entry ?\" "\"" st)
(modify-syntax-entry ?$ "$$ " st)
(modify-syntax-entry ?% "< " st)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(modify-syntax-entry ?' "w " st)
(modify-syntax-entry ?@ "w " st)
(modify-syntax-entry ?\\ "\\" st)
(modify-syntax-entry ?\f "> " st)
(modify-syntax-entry ?\n "> " st)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Keys cannot have = in them (wrong font-lock of @string{foo=bar}).
(modify-syntax-entry ?= "." st)
(modify-syntax-entry ?~ " " st)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
st)
"Syntax table used in BibTeX mode buffers.")
(defvar bibtex-mode-map
(let ((km (make-sparse-keymap)))
;; The Key `C-c&' is reserved for reftex.el
(define-key km "\t" 'bibtex-find-text)
(define-key km "\n" 'bibtex-next-field)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(define-key km "\M-\t" 'bibtex-complete)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\"" 'bibtex-remove-delimiters)
(define-key km "\C-c{" 'bibtex-remove-delimiters)
(define-key km "\C-c}" 'bibtex-remove-delimiters)
(define-key km "\C-c\C-c" 'bibtex-clean-entry)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\C-q" 'bibtex-fill-entry)
(define-key km "\C-c\C-s" 'bibtex-search-entry)
(define-key km "\C-c\C-x" 'bibtex-search-crossref)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(define-key km "\C-c\C-t" 'bibtex-copy-summary-as-kill)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c?" 'bibtex-print-help-message)
(define-key km "\C-c\C-p" 'bibtex-pop-previous)
(define-key km "\C-c\C-n" 'bibtex-pop-next)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\C-k" 'bibtex-kill-field)
(define-key km "\C-c\M-k" 'bibtex-copy-field-as-kill)
(define-key km "\C-c\C-w" 'bibtex-kill-entry)
(define-key km "\C-c\M-w" 'bibtex-copy-entry-as-kill)
(define-key km "\C-c\C-y" 'bibtex-yank)
(define-key km "\C-c\M-y" 'bibtex-yank-pop)
(define-key km "\C-c\C-d" 'bibtex-empty-field)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\C-f" 'bibtex-make-field)
(define-key km "\C-c\C-u" 'bibtex-entry-update)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c$" 'bibtex-ispell-abstract)
(define-key km "\M-\C-a" 'bibtex-beginning-of-entry)
(define-key km "\M-\C-e" 'bibtex-end-of-entry)
(define-key km "\C-\M-l" 'bibtex-reposition-window)
(define-key km "\C-\M-h" 'bibtex-mark-entry)
(define-key km "\C-c\C-b" 'bibtex-entry)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-rn" 'bibtex-narrow-to-entry)
(define-key km "\C-c\C-rw" 'widen)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(define-key km "\C-c\C-l" 'bibtex-url)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\C-o" 'bibtex-remove-OPT-or-ALT)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-e\C-i" 'bibtex-InProceedings)
(define-key km "\C-c\C-ei" 'bibtex-InCollection)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-eI" 'bibtex-InBook)
(define-key km "\C-c\C-e\C-a" 'bibtex-Article)
(define-key km "\C-c\C-e\C-b" 'bibtex-InBook)
(define-key km "\C-c\C-eb" 'bibtex-Book)
(define-key km "\C-c\C-eB" 'bibtex-Booklet)
(define-key km "\C-c\C-e\C-c" 'bibtex-InCollection)
(define-key km "\C-c\C-e\C-m" 'bibtex-Manual)
(define-key km "\C-c\C-em" 'bibtex-MastersThesis)
(define-key km "\C-c\C-eM" 'bibtex-Misc)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-e\C-p" 'bibtex-InProceedings)
(define-key km "\C-c\C-ep" 'bibtex-Proceedings)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-eP" 'bibtex-PhdThesis)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(define-key km "\C-c\C-e\M-p" 'bibtex-Preamble)
(define-key km "\C-c\C-e\C-s" 'bibtex-String)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(define-key km "\C-c\C-e\C-t" 'bibtex-TechReport)
(define-key km "\C-c\C-e\C-u" 'bibtex-Unpublished)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
km)
"Keymap used in BibTeX mode.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(easy-menu-define
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-edit-menu bibtex-mode-map "BibTeX-Edit Menu in BibTeX mode"
'("BibTeX-Edit"
("Moving inside an Entry"
["End of Field" bibtex-find-text t]
["Next Field" bibtex-next-field t]
["Beginning of Entry" bibtex-beginning-of-entry t]
["End of Entry" bibtex-end-of-entry t]
"--"
["Make Entry Visible" bibtex-reposition-window t])
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
("Moving in BibTeX Buffers"
["Search Entry" bibtex-search-entry t]
["Search Crossref Entry" bibtex-search-crossref t])
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"--"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Operating on Current Field"
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
["Fill Field" fill-paragraph t]
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
["Remove Delimiters" bibtex-remove-delimiters t]
["Remove OPT or ALT Prefix" bibtex-remove-OPT-or-ALT t]
["Clear Field" bibtex-empty-field t]
"--"
["Kill Field" bibtex-kill-field t]
["Copy Field to Kill Ring" bibtex-copy-field-as-kill t]
["Paste Most Recently Killed Field" bibtex-yank t]
["Paste Previously Killed Field" bibtex-yank-pop t]
"--"
["Make New Field" bibtex-make-field t]
"--"
["Snatch from Similar Following Field" bibtex-pop-next t]
["Snatch from Similar Preceding Field" bibtex-pop-previous t]
"--"
["String or Key Complete" bibtex-complete t]
"--"
["Help about Current Field" bibtex-print-help-message t])
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
("Operating on Current Entry"
["Fill Entry" bibtex-fill-entry t]
["Clean Entry" bibtex-clean-entry t]
["Update Entry" bibtex-entry-update t]
"--"
["Kill Entry" bibtex-kill-entry t]
["Copy Entry to Kill Ring" bibtex-copy-entry-as-kill t]
["Paste Most Recently Killed Entry" bibtex-yank t]
["Paste Previously Killed Entry" bibtex-yank-pop t]
"--"
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
["Copy Summary to Kill Ring" bibtex-copy-summary-as-kill t]
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
["Browse URL" bibtex-url t]
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"--"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
["Ispell Entry" bibtex-ispell-entry t]
["Ispell Entry Abstract" bibtex-ispell-abstract t]
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"--"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
["Narrow to Entry" bibtex-narrow-to-entry t]
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
["Mark Entry" bibtex-mark-entry t]
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
"--"
["View Cite Locations (RefTeX)" reftex-view-crossref-from-bibtex
(fboundp 'reftex-view-crossref-from-bibtex)])
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
("Operating on Buffer or Region"
["Validate Entries" bibtex-validate t]
["Sort Entries" bibtex-sort-buffer t]
["Reformat Entries" bibtex-reformat t]
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
["Count Entries" bibtex-count-entries t]
"--"
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
["Convert Alien Buffer" bibtex-convert-alien t])
("Operating on Multiple Buffers"
["(Re)Initialize BibTeX Buffers" bibtex-initialize t]
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
["Validate Entries" bibtex-validate-globally t])))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(easy-menu-define
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-entry-menu bibtex-mode-map "Entry-Types Menu in BibTeX mode"
(list "Entry-Types"
["Article in Journal" bibtex-Article t]
["Article in Conference Proceedings" bibtex-InProceedings t]
["Article in a Collection" bibtex-InCollection t]
["Chapter or Pages in a Book" bibtex-InBook t]
["Conference Proceedings" bibtex-Proceedings t]
["Book" bibtex-Book t]
["Booklet (Bound, but no Publisher/Institution)" bibtex-Booklet t]
["PhD. Thesis" bibtex-PhdThesis t]
["Master's Thesis" bibtex-MastersThesis t]
["Technical Report" bibtex-TechReport t]
["Technical Manual" bibtex-Manual t]
["Unpublished" bibtex-Unpublished t]
["Miscellaneous" bibtex-Misc t]
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"--"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
["String" bibtex-String t]
["Preamble" bibtex-Preamble t]))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
;; Internal Variables
(defvar bibtex-field-braces-opt nil
"Optimized value of `bibtex-field-braces-alist'.
Created by `bibtex-field-re-init'.
It is a an alist with elements (FIELD . REGEXP).")
(defvar bibtex-field-strings-opt nil
"Optimized value of `bibtex-field-strings-alist'.
Created by `bibtex-field-re-init'.
It is a an alist with elements (FIELD RULE1 RULE2 ...),
where each RULE is (REGEXP . TO-STR).")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-pop-previous-search-point nil
"Next point where `bibtex-pop-previous' starts looking for a similar entry.")
(defvar bibtex-pop-next-search-point nil
"Next point where `bibtex-pop-next' starts looking for a similar entry.")
(defvar bibtex-field-kill-ring nil
"Ring of least recently killed fields.
At most `bibtex-field-kill-ring-max' items are kept here.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-field-kill-ring-yank-pointer nil
"The tail of `bibtex-field-kill-ring' whose car is the last item yanked.")
1991-05-09 21:50:45 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-entry-kill-ring nil
"Ring of least recently killed entries.
At most `bibtex-entry-kill-ring-max' items are kept here.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-entry-kill-ring-yank-pointer nil
"The tail of `bibtex-entry-kill-ring' whose car is the last item yanked.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-last-kill-command nil
"Type of the last kill command (either 'field or 'entry).")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defvar bibtex-strings
(lazy-completion-table bibtex-strings
(lambda ()
(bibtex-parse-strings (bibtex-string-files-init))))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Completion table for BibTeX string keys.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(make-variable-buffer-local 'bibtex-strings)
(put 'bibtex-strings 'risky-local-variable t)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defvar bibtex-reference-keys
(lazy-completion-table bibtex-reference-keys
(lambda () (bibtex-parse-keys nil t)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Completion table for BibTeX reference keys.
The CDRs of the elements are t for header keys and nil for crossref keys.")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(make-variable-buffer-local 'bibtex-reference-keys)
(put 'bibtex-reference-keys 'risky-local-variable t)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-buffer-last-parsed-tick nil
"Value of `buffer-modified-tick' last time buffer was parsed for keys.")
1991-05-09 21:50:45 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-parse-idle-timer nil
"Stores if timer is already installed.")
(bibtex-auto-fill-function): Adapted for use with changed autofill policy of emacs-19.30 (uses now fill-prefix instead of indent-line-function). (bibtex-indent-line-function): Removed (not used any more). (bibtex-make-field): Was broken when called non-interactively. (bibtex-make-field): Point is now placed on closing brace or quote (suggested by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-clean-entry): Comma after last field isn't deleted anymore (new standard in BibTeX 0.99 and 1.xx). (bibtex-enclosing-reference-maybe-empty-head): Works with entries with comma after last field. (bibtex-reference): Permits entries with comma after last field. (bibtex-font-lock-keywords): Enhanced to support new field-name characters (suggested by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-field-name): Now numbers (not as the first sign), dashes, and underscores are allowed (suggested by Martin Maechler <maechler@stat.math.ethz.ch> and Oren Patashnik <opbibtex@labrea.Stanford.EDU>). (bibtex-make-field): Was broken on lines containing non-parenthesized entries (reported by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-validate-buffer): Changed so that preamble references are ignored (same as string entries) (reported by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-enclosing-reference-maybe-empty-head): New function to be used in case reference head may be empty. (bibtex-clean-entry, bibtex-pop-previous, bibtex-pop-next): Uses now bibtex-enclosing-reference-maybe-empty-head. (bibtex-mode): Added support for font-lock mode. (bibtex-font-lock-keywords): New variable with font-lock keywords for BibTeX mode. (bibtex-make-optional-field): Not longer interactive (suggested by Karl Eichwalder <karl@pertron.central.de>). (bibtex-maintain-sorted-entries): Set to nil, since it requires more user attention and more restricted files to have this set to t. (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Made buffer local, since it may depend on the buffer which preferences to use. (bibtex-validate-buffer): Looking for correct sort order only when bibtex-maintain-sorted-entries is non-nil. Put a comment in the `KNOWN BUGS' section about the quote-inside-quotes problem. (whole file): Changed string `true' in some documentation strings to `non-nil' (e.g. `if variable has a true/non-nil value'). (bibtex-mode-map): Changed `move/edit' to `bibtex-edit'. (bibtex-sort-entries): Now works correctly with `@String' entries inside BibTeX files (i.e. after the occurence of other references). (bibtex-validate-buffer): Inserted code which looks if entries are balanced (a single non-escaped quote inside braces was not detected till now, but bibtex-sort-entries stumbles about it). (bibtex-entry): bibtex-move-outside-of-entry is only called when bibtex-maintain-sorted-entries is nil (otherwise bibtex-find-entry-location determines the correct location). (bibtex-find-entry-location): Now uses binary search. As before, it assumes that the buffer is sorted without duplicates (but as before it is only called when bibtex-maintain-sorted-entries is t). Ignores `@String' entries if told so via variable bibtex-sort-ignore-string-entries. (bibtex-clean-entry): Respect bibtex-maintain-sorted-entries when inserting autokey. (bibtex-validate-buffer): Searching whole buffer for duplicates and correct order is now done directly instead of calling bibtex-find-entry-location (since this is to be reprogrammed to use a binary search instead a sequential one). (bibtex-parse-keys): May now be called with an optional parameter which (if t) tells bibtex-parse-keys that it should abort if input is pending. (bibtex-mode): The instance of bibtex-parse-keys called in auto-save-mode-hook is now called with this new parameter set to t, so an auto-save caused by exceeding auto-save-interval is now aborted immediately if user is still typing. (bibtex-print-help-message, bibtex-clean-entry): Use now constant strings instead of custom ones. (bibtex-clean-entry): Changed the call of bibtex-enclosing-reference to a more specific call so entries without a key (here allowed) can be handled. (bibtex-reference-key): Cleared off parentheses (caused string entries enclosed by parentheses instead of braces to be not added to bibtex-completion-candidates). (bibtex-complete-string): Made it use bibtex-string. (bibtex-keys, bibtex-buffer-last-parsed-for-keys-tick): New buffer-local variables to make parsing of BibTeX buffer for reference keys (needed by TAB completion in minibuffer when entering key) more occasional. (bibtex-parse-keys): New function to parse for keys (functionality was partially included in bibtex-entry). (bibtex-entry): Changed to use bibtex-parse-keys. (bibtex-mode): Installs bibtex-parse-keys as an auto-save-mode-hook, so whole buffer is parsed at most when it is autosaved. (bibtex-clean-entry): Calls bibtex-parse-keys on the new entry, so bibtex-keys remains consistent for new entries that are finished by calling this function (most should). (bibtex-inside-field): Be independent on current setting of bibtex-field-right-delimiter (allows more intermixing between quotes and braces). (bibtex-make-field): Last change didn't make it work correctly when called non-interactively by bibtex-entry (fixed).
1995-12-13 20:26:13 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-progress-lastperc nil
"Last reported percentage for the progress message.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-progress-lastmes nil
"Last reported progress message.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-progress-interval nil
"Interval for progress messages.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-key-history nil
"History list for reading keys.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-entry-type-history nil
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"History list for reading entry types.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-field-history nil
"History list for reading field names.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-reformat-previous-options nil
"Last reformat options given.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-reformat-previous-reference-keys nil
"Last reformat reference keys option given.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defconst bibtex-field-name "[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*"
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Regexp matching the name of a BibTeX field.")
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defconst bibtex-name-part
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(concat ",[ \t\n]*\\(" bibtex-field-name "\\)")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Regexp matching the name part of a BibTeX field.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defconst bibtex-reference-key "[][[:alnum:].:;?!`'/*@+|()<>&_^$-]+"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Regexp matching the reference key part of a BibTeX entry.")
(defconst bibtex-field-const "[][[:alnum:].:;?!`'/*@+=|<>&_^$-]+"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Regexp matching a BibTeX field constant.")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defvar bibtex-entry-type
(concat "@[ \t]*\\(?:"
(regexp-opt (mapcar 'car bibtex-entry-field-alist)) "\\)")
"Regexp matching the type of a BibTeX entry.")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defvar bibtex-entry-head
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(concat "^[ \t]*\\("
bibtex-entry-type
"\\)[ \t]*[({][ \t\n]*\\("
bibtex-reference-key
"\\)")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Regexp matching the header line of a BibTeX entry (including key).")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defvar bibtex-entry-maybe-empty-head
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(concat bibtex-entry-head "?")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Regexp matching the header line of a BibTeX entry (possibly without key).")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defconst bibtex-any-entry-maybe-empty-head
(concat "^[ \t]*\\(@[ \t]*" bibtex-field-name "\\)[ \t]*[({][ \t\n]*\\("
bibtex-reference-key "\\)?")
"Regexp matching the header line of any BibTeX entry (possibly without key).")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defvar bibtex-any-valid-entry-type
(concat "^[ \t]*@[ \t]*\\(?:"
(regexp-opt (append '("String" "Preamble")
(mapcar 'car bibtex-entry-field-alist))) "\\)")
"Regexp matching any valid BibTeX entry (including String and Preamble).")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defconst bibtex-type-in-head 1
"Regexp subexpression number of the type part in `bibtex-entry-head'.")
(defconst bibtex-key-in-head 2
"Regexp subexpression number of the key part in `bibtex-entry-head'.")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defconst bibtex-string-type "^[ \t]*\\(@[ \t]*String\\)[ \t]*[({][ \t\n]*"
"Regexp matching the name of a BibTeX String entry.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defconst bibtex-string-maybe-empty-head
(concat bibtex-string-type "\\(" bibtex-reference-key "\\)?")
"Regexp matching the header line of a BibTeX String entry.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defconst bibtex-preamble-prefix
"[ \t]*\\(@[ \t]*Preamble\\)[ \t]*[({][ \t\n]*"
"Regexp matching the prefix part of a BibTeX Preamble entry.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defconst bibtex-font-lock-syntactic-keywords
`((,(concat "^[ \t]*\\(" (substring bibtex-comment-start 0 1) "\\)"
(substring bibtex-comment-start 1) "\\>")
1 '(11))))
(defvar bibtex-font-lock-keywords
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
;; entry type and reference key
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
`((,bibtex-any-entry-maybe-empty-head
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(,bibtex-type-in-head font-lock-function-name-face)
(,bibtex-key-in-head font-lock-constant-face nil t))
;; optional field names (treated as comments)
(,(concat "^[ \t]*\\(OPT" bibtex-field-name "\\)[ \t]*=")
1 font-lock-comment-face)
;; field names
(,(concat "^[ \t]*\\(" bibtex-field-name "\\)[ \t]*=")
1 font-lock-variable-name-face)
;; url
(bibtex-font-lock-url) (bibtex-font-lock-crossref)
;; cite
,@(mapcar (lambda (matcher)
`((lambda (bound) (bibtex-font-lock-cite ',matcher bound))))
bibtex-cite-matcher-alist))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"*Default expressions to highlight in BibTeX mode.")
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(defvar bibtex-font-lock-url-regexp
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; Assume that field names begin at the beginning of a line.
(concat "^[ \t]*"
(regexp-opt (delete-dups (mapcar 'caar bibtex-generate-url-list)) t)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"[ \t]*=[ \t]*")
"Regexp for `bibtex-font-lock-url' derived from `bibtex-generate-url-list'.")
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defvar bibtex-string-empty-key nil
"If non-nil, `bibtex-parse-string' accepts empty key.")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defvar bibtex-sort-entry-class-alist nil
"Alist mapping entry types to their sorting index.
Auto-generated from `bibtex-sort-entry-class'.
Used when `bibtex-maintain-sorted-entries' is `entry-class'.")
(bibtex-auto-fill-function): Adapted for use with changed autofill policy of emacs-19.30 (uses now fill-prefix instead of indent-line-function). (bibtex-indent-line-function): Removed (not used any more). (bibtex-make-field): Was broken when called non-interactively. (bibtex-make-field): Point is now placed on closing brace or quote (suggested by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-clean-entry): Comma after last field isn't deleted anymore (new standard in BibTeX 0.99 and 1.xx). (bibtex-enclosing-reference-maybe-empty-head): Works with entries with comma after last field. (bibtex-reference): Permits entries with comma after last field. (bibtex-font-lock-keywords): Enhanced to support new field-name characters (suggested by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-field-name): Now numbers (not as the first sign), dashes, and underscores are allowed (suggested by Martin Maechler <maechler@stat.math.ethz.ch> and Oren Patashnik <opbibtex@labrea.Stanford.EDU>). (bibtex-make-field): Was broken on lines containing non-parenthesized entries (reported by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-validate-buffer): Changed so that preamble references are ignored (same as string entries) (reported by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-enclosing-reference-maybe-empty-head): New function to be used in case reference head may be empty. (bibtex-clean-entry, bibtex-pop-previous, bibtex-pop-next): Uses now bibtex-enclosing-reference-maybe-empty-head. (bibtex-mode): Added support for font-lock mode. (bibtex-font-lock-keywords): New variable with font-lock keywords for BibTeX mode. (bibtex-make-optional-field): Not longer interactive (suggested by Karl Eichwalder <karl@pertron.central.de>). (bibtex-maintain-sorted-entries): Set to nil, since it requires more user attention and more restricted files to have this set to t. (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Made buffer local, since it may depend on the buffer which preferences to use. (bibtex-validate-buffer): Looking for correct sort order only when bibtex-maintain-sorted-entries is non-nil. Put a comment in the `KNOWN BUGS' section about the quote-inside-quotes problem. (whole file): Changed string `true' in some documentation strings to `non-nil' (e.g. `if variable has a true/non-nil value'). (bibtex-mode-map): Changed `move/edit' to `bibtex-edit'. (bibtex-sort-entries): Now works correctly with `@String' entries inside BibTeX files (i.e. after the occurence of other references). (bibtex-validate-buffer): Inserted code which looks if entries are balanced (a single non-escaped quote inside braces was not detected till now, but bibtex-sort-entries stumbles about it). (bibtex-entry): bibtex-move-outside-of-entry is only called when bibtex-maintain-sorted-entries is nil (otherwise bibtex-find-entry-location determines the correct location). (bibtex-find-entry-location): Now uses binary search. As before, it assumes that the buffer is sorted without duplicates (but as before it is only called when bibtex-maintain-sorted-entries is t). Ignores `@String' entries if told so via variable bibtex-sort-ignore-string-entries. (bibtex-clean-entry): Respect bibtex-maintain-sorted-entries when inserting autokey. (bibtex-validate-buffer): Searching whole buffer for duplicates and correct order is now done directly instead of calling bibtex-find-entry-location (since this is to be reprogrammed to use a binary search instead a sequential one). (bibtex-parse-keys): May now be called with an optional parameter which (if t) tells bibtex-parse-keys that it should abort if input is pending. (bibtex-mode): The instance of bibtex-parse-keys called in auto-save-mode-hook is now called with this new parameter set to t, so an auto-save caused by exceeding auto-save-interval is now aborted immediately if user is still typing. (bibtex-print-help-message, bibtex-clean-entry): Use now constant strings instead of custom ones. (bibtex-clean-entry): Changed the call of bibtex-enclosing-reference to a more specific call so entries without a key (here allowed) can be handled. (bibtex-reference-key): Cleared off parentheses (caused string entries enclosed by parentheses instead of braces to be not added to bibtex-completion-candidates). (bibtex-complete-string): Made it use bibtex-string. (bibtex-keys, bibtex-buffer-last-parsed-for-keys-tick): New buffer-local variables to make parsing of BibTeX buffer for reference keys (needed by TAB completion in minibuffer when entering key) more occasional. (bibtex-parse-keys): New function to parse for keys (functionality was partially included in bibtex-entry). (bibtex-entry): Changed to use bibtex-parse-keys. (bibtex-mode): Installs bibtex-parse-keys as an auto-save-mode-hook, so whole buffer is parsed at most when it is autosaved. (bibtex-clean-entry): Calls bibtex-parse-keys on the new entry, so bibtex-keys remains consistent for new entries that are finished by calling this function (most should). (bibtex-inside-field): Be independent on current setting of bibtex-field-right-delimiter (allows more intermixing between quotes and braces). (bibtex-make-field): Last change didn't make it work correctly when called non-interactively by bibtex-entry (fixed).
1995-12-13 20:26:13 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(defun bibtex-parse-association (parse-lhs parse-rhs)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Parse a string of the format <left-hand-side = right-hand-side>.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
The functions PARSE-LHS and PARSE-RHS are used to parse the corresponding
substrings. These functions are expected to return nil if parsing is not
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
successful. If the returned values of both functions are non-nil,
return a cons pair of these values. Do not move point."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(save-match-data
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let ((left (funcall parse-lhs))
right)
(if (and left
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(looking-at "[ \t\n]*=[ \t\n]*")
(goto-char (match-end 0))
(setq right (funcall parse-rhs)))
(cons left right))))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(defun bibtex-parse-field-name ()
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Parse the name part of a BibTeX field.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
If the field name is found, return a triple consisting of the position of the
very first character of the match, the actual starting position of the name
part and end position of the match. Move point to end of field name.
If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceding
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
BibTeX field as necessary."
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(cond ((looking-at bibtex-name-part)
(goto-char (match-end 0))
(list (match-beginning 0) (match-beginning 1) (match-end 0)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
;; Maybe add a missing comma.
((and bibtex-autoadd-commas
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(looking-at (concat "[ \t\n]*\\(?:" bibtex-field-name
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"\\)[ \t\n]*=")))
(skip-chars-backward " \t\n")
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; It can be confusing if non-editing commands try to
;; modify the buffer.
(if buffer-read-only
(error "Comma missing at buffer position %s" (point)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(insert ",")
(forward-char -1)
;; Now try again.
(bibtex-parse-field-name))))
1992-02-22 21:47:46 +00:00
(defconst bibtex-braced-string-syntax-table
(let ((st (make-syntax-table)))
(modify-syntax-entry ?\{ "(}" st)
(modify-syntax-entry ?\} "){" st)
(modify-syntax-entry ?\[ "." st)
(modify-syntax-entry ?\] "." st)
(modify-syntax-entry ?\( "." st)
(modify-syntax-entry ?\) "." st)
(modify-syntax-entry ?\\ "." st)
(modify-syntax-entry ?\" "." st)
st)
"Syntax-table to parse matched braces.")
(defconst bibtex-quoted-string-syntax-table
(let ((st (make-syntax-table)))
(modify-syntax-entry ?\\ "\\" st)
(modify-syntax-entry ?\" "\"" st)
st)
"Syntax-table to parse matched quotes.")
(defun bibtex-parse-field-string ()
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Parse a BibTeX field string enclosed by braces or quotes.
If a syntactically correct string is found, a pair containing the start and
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
end position of the field string is returned, nil otherwise.
Do not move point."
(let ((end-point
(or (and (eq (following-char) ?\")
(save-excursion
(with-syntax-table bibtex-quoted-string-syntax-table
(forward-sexp 1))
(point)))
(and (eq (following-char) ?\{)
(save-excursion
(with-syntax-table bibtex-braced-string-syntax-table
(forward-sexp 1))
(point))))))
(if end-point
(cons (point) end-point))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(defun bibtex-parse-field-text ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Parse the text part of a BibTeX field.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
The text part is either a string, or an empty string, or a constant followed
by one or more <# (string|constant)> pairs. If a syntactically correct text
is found, a pair containing the start and end position of the text is
returned, nil otherwise. Move point to end of field text."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(let ((starting-point (point))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
end-point failure boundaries)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(while (not (or end-point failure))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(cond ((looking-at bibtex-field-const)
(goto-char (match-end 0)))
((setq boundaries (bibtex-parse-field-string))
(goto-char (cdr boundaries)))
((setq failure t)))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(if (looking-at "[ \t\n]*#[ \t\n]*")
(goto-char (match-end 0))
(setq end-point (point))))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(skip-chars-forward " \t\n")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(if (and (not failure)
end-point)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(list starting-point end-point (point)))))
(defun bibtex-parse-field ()
"Parse the BibTeX field beginning at the position of point.
If a syntactically correct field is found, return a cons pair containing
the boundaries of the name and text parts of the field. Do not move point."
(bibtex-parse-association 'bibtex-parse-field-name
'bibtex-parse-field-text))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defsubst bibtex-start-of-field (bounds)
(nth 0 (car bounds)))
(defsubst bibtex-start-of-name-in-field (bounds)
(nth 1 (car bounds)))
(defsubst bibtex-end-of-name-in-field (bounds)
(nth 2 (car bounds)))
(defsubst bibtex-start-of-text-in-field (bounds)
(nth 1 bounds))
(defsubst bibtex-end-of-text-in-field (bounds)
(nth 2 bounds))
(defsubst bibtex-end-of-field (bounds)
(nth 3 bounds))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-search-forward-field (name &optional bound)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Search forward to find a BibTeX field of name NAME.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
If a syntactically correct field is found, return a pair containing
the boundaries of the name and text parts of the field. The search
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
is limited by optional arg BOUND. If BOUND is t the search is limited
by the end of the current entry. Do not move point."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(save-match-data
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (eq bound t)
(let ((regexp (concat bibtex-name-part "[ \t\n]*=\\|"
bibtex-any-entry-maybe-empty-head))
(case-fold-search t) bounds)
(catch 'done
(if (looking-at "[ \t]*@") (goto-char (match-end 0)))
(while (and (not bounds)
(re-search-forward regexp nil t))
(if (match-beginning 2)
;; We found a new entry
(throw 'done nil)
;; We found a field
(goto-char (match-beginning 0))
(setq bounds (bibtex-parse-field))))
;; Step through all fields so that we cannot overshoot.
(while bounds
(goto-char (bibtex-start-of-name-in-field bounds))
(if (looking-at name) (throw 'done bounds))
(goto-char (bibtex-end-of-field bounds))
(setq bounds (bibtex-parse-field)))))
;; Bounded search or bound is nil (i.e. we cannot overshoot).
;; Indeed, the search is bounded when `bibtex-search-forward-field'
;; is called many times. So we optimize this part of this function.
(let ((name-part (concat ",[ \t\n]*\\(" name "\\)[ \t\n]*=[ \t\n]*"))
(case-fold-search t) left right)
(while (and (not right)
(re-search-forward name-part bound t))
(setq left (list (match-beginning 0) (match-beginning 1)
(match-end 1))
;; Don't worry that the field text could be past bound.
right (bibtex-parse-field-text)))
(if right (cons left right)))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-search-backward-field (name &optional bound)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Search backward to find a BibTeX field of name NAME.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
If a syntactically correct field is found, return a pair containing
the boundaries of the name and text parts of the field. The search
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
is limited by the optional arg BOUND. If BOUND is t the search is
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
limited by the beginning of the current entry. Do not move point."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(save-match-data
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (eq bound t)
(setq bound (save-excursion (bibtex-beginning-of-entry))))
(let ((name-part (concat ",[ \t\n]*\\(" name "\\)[ \t\n]*=[ \t\n]*"))
(case-fold-search t) left right)
(save-excursion
;; the parsing functions are not designed for parsing backwards :-(
(when (search-backward "," bound t)
(or (save-excursion
(when (looking-at name-part)
(setq left (list (match-beginning 0) (match-beginning 1)
(match-end 1)))
(goto-char (match-end 0))
(setq right (bibtex-parse-field-text))))
(while (and (not right)
(re-search-backward name-part bound t))
(setq left (list (match-beginning 0) (match-beginning 1)
(match-end 1)))
(save-excursion
(goto-char (match-end 0))
(setq right (bibtex-parse-field-text)))))
(if right (cons left right)))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(defun bibtex-name-in-field (bounds &optional remove-opt-alt)
"Get content of name in BibTeX field defined via BOUNDS.
If optional arg REMOVE-OPT-ALT is non-nil remove \"OPT\" and \"ALT\"."
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let ((name (buffer-substring-no-properties
(bibtex-start-of-name-in-field bounds)
(bibtex-end-of-name-in-field bounds))))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(if (and remove-opt-alt
(string-match "\\`\\(OPT\\|ALT\\)" name))
(substring name 3)
name)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defun bibtex-text-in-field-bounds (bounds &optional content)
"Get text in BibTeX field defined via BOUNDS.
If optional arg CONTENT is non-nil extract content of field
by removing field delimiters and concatenating the resulting string.
If `bibtex-expand-strings' is non-nil, also expand BibTeX strings."
(if content
(save-excursion
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char (bibtex-start-of-text-in-field bounds))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let ((epoint (bibtex-end-of-text-in-field bounds))
content)
(while (< (point) epoint)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (looking-at bibtex-field-const)
(let ((mtch (match-string-no-properties 0)))
(push (or (if bibtex-expand-strings
(cdr (assoc-string mtch (bibtex-strings) t)))
mtch) content)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char (match-end 0)))
(let ((bounds (bibtex-parse-field-string)))
(push (buffer-substring-no-properties
(1+ (car bounds)) (1- (cdr bounds))) content)
(goto-char (cdr bounds))))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(re-search-forward "\\=[ \t\n]*#[ \t\n]*" nil t))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(apply 'concat (nreverse content))))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(buffer-substring-no-properties (bibtex-start-of-text-in-field bounds)
(bibtex-end-of-text-in-field bounds))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-text-in-field (field &optional follow-crossref)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Get content of field FIELD of current BibTeX entry.
Return nil if not found.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
If optional arg FOLLOW-CROSSREF is non-nil, follow crossref."
(save-excursion
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(let* ((end (if follow-crossref (bibtex-end-of-entry) t))
(beg (bibtex-beginning-of-entry)) ; move point
(bounds (bibtex-search-forward-field field end)))
(cond (bounds (bibtex-text-in-field-bounds bounds t))
((and follow-crossref
(progn (goto-char beg)
(setq bounds (bibtex-search-forward-field
"\\(OPT\\)?crossref" end))))
(let ((crossref-field (bibtex-text-in-field-bounds bounds t)))
(if (bibtex-search-crossref crossref-field)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Do not pass FOLLOW-CROSSREF because we want
;; to follow crossrefs only one level of recursion.
(bibtex-text-in-field field))))))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(defun bibtex-parse-string-prefix ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Parse the prefix part of a BibTeX string entry, including reference key.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
If the string prefix is found, return a triple consisting of the position of
the very first character of the match, the actual starting position of the
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
reference key and the end position of the match.
If `bibtex-string-empty-key' is non-nil accept empty string key."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(if (looking-at bibtex-string-type)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((start (point)))
(goto-char (match-end 0))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(cond ((looking-at bibtex-reference-key)
(goto-char (match-end 0))
(list start
(match-beginning 0)
(match-end 0)))
((and bibtex-string-empty-key
(looking-at "="))
(skip-chars-backward " \t\n")
(list start (point) (point))))))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(defun bibtex-parse-string-postfix ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Parse the postfix part of a BibTeX string entry, including the text.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
If the string postfix is found, return a triple consisting of the position of
the actual starting and ending position of the text and the very last
character of the string entry. Move point past BibTeX string entry."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(let* ((case-fold-search t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(bounds (bibtex-parse-field-text)))
(when bounds
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(goto-char (nth 1 bounds))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(when (looking-at "[ \t\n]*[})]")
(goto-char (match-end 0))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(list (car bounds)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(nth 1 bounds)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(match-end 0))))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-parse-string (&optional empty-key)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Parse a BibTeX string entry beginning at the position of point.
If a syntactically correct entry is found, return a cons pair containing
the boundaries of the reference key and text parts of the entry.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
If EMPTY-KEY is non-nil, key may be empty. Do not move point."
(let ((bibtex-string-empty-key empty-key))
(bibtex-parse-association 'bibtex-parse-string-prefix
'bibtex-parse-string-postfix)))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-search-forward-string (&optional empty-key)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Search forward to find a BibTeX string entry.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
If a syntactically correct entry is found, a pair containing the boundaries of
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
the reference key and text parts of the string is returned.
If EMPTY-KEY is non-nil, key may be empty. Do not move point."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(save-match-data
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(let ((case-fold-search t) bounds)
(while (and (not bounds)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(search-forward-regexp bibtex-string-type nil t))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(save-excursion (goto-char (match-beginning 0))
(setq bounds (bibtex-parse-string empty-key))))
bounds))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-reference-key-in-string (bounds)
"Return the key part of a BibTeX string defined via BOUNDS."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(buffer-substring-no-properties (nth 1 (car bounds))
(nth 2 (car bounds))))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defun bibtex-text-in-string (bounds &optional content)
"Get text in BibTeX string field defined via BOUNDS.
If optional arg CONTENT is non-nil extract content
by removing field delimiters and concatenating the resulting string.
If `bibtex-expand-strings' is non-nil, also expand BibTeX strings."
(bibtex-text-in-field-bounds bounds content))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defsubst bibtex-start-of-text-in-string (bounds)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(nth 0 (cdr bounds)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defsubst bibtex-end-of-text-in-string (bounds)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(nth 1 (cdr bounds)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defsubst bibtex-end-of-string (bounds)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(nth 2 (cdr bounds)))
1991-05-09 21:50:45 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defsubst bibtex-type-in-head ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Extract BibTeX type in head."
;; ignore @
(buffer-substring-no-properties (1+ (match-beginning bibtex-type-in-head))
(match-end bibtex-type-in-head)))
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defsubst bibtex-key-in-head (&optional empty)
"Extract BibTeX key in head. Return optional arg EMPTY if key is empty."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(or (match-string-no-properties bibtex-key-in-head)
empty))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-parse-preamble ()
"Parse BibTeX preamble.
Point must be at beginning of preamble. Do not move point."
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let ((case-fold-search t))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(when (looking-at bibtex-preamble-prefix)
(let ((start (match-beginning 0)) (pref-start (match-beginning 1))
(bounds (save-excursion (goto-char (match-end 0))
(bibtex-parse-string-postfix))))
(if bounds (cons (list start pref-start) bounds))))))
1992-07-16 21:47:34 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; Helper Functions
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(defsubst bibtex-string= (str1 str2)
"Return t if STR1 and STR2 are equal, ignoring case."
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(eq t (compare-strings str1 0 nil str2 0 nil t)))
(defun bibtex-delete-whitespace ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Delete all whitespace starting at point."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(if (looking-at "[ \t\n]+")
(delete-region (point) (match-end 0))))
(defun bibtex-current-line ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Compute line number of point regardless whether the buffer is narrowed."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(+ (count-lines 1 (point))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if (bolp) 1 0)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-valid-entry (&optional empty-key)
"Parse a valid BibTeX entry (maybe without key if EMPTY-KEY is t).
A valid entry is a syntactical correct one with type contained in
`bibtex-entry-field-alist'. Ignore @String and @Preamble entries.
Return a cons pair with buffer positions of beginning and end of entry
if a valid entry is found, nil otherwise. Do not move point.
After a call to this function `match-data' corresponds to the header
of the entry, see regexp `bibtex-entry-head'."
(let ((case-fold-search t) end)
(if (looking-at (if empty-key bibtex-entry-maybe-empty-head
bibtex-entry-head))
(save-excursion
(save-match-data
(goto-char (match-end 0))
(let ((entry-closer
(if (save-excursion
(goto-char (match-end bibtex-type-in-head))
(looking-at "[ \t]*("))
",?[ \t\n]*)" ; entry opened with `('
",?[ \t\n]*}")) ; entry opened with `{'
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
bounds)
(skip-chars-forward " \t\n")
;; loop over all BibTeX fields
(while (setq bounds (bibtex-parse-field))
(goto-char (bibtex-end-of-field bounds)))
;; This matches the infix* part.
(if (looking-at entry-closer) (setq end (match-end 0)))))
(if end (cons (match-beginning 0) end))))))
(defun bibtex-skip-to-valid-entry (&optional backward)
"Move point to beginning of the next valid BibTeX entry.
Do not move if we are already at beginning of a valid BibTeX entry.
With optional argument BACKWARD non-nil, move backward to
beginning of previous valid one. A valid entry is a syntactical correct one
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
with type contained in `bibtex-entry-field-alist' or, if
`bibtex-sort-ignore-string-entries' is nil, a syntactical correct string
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
entry. Return buffer position of beginning and end of entry if a valid
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
entry is found, nil otherwise."
(interactive "P")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
found bounds)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(beginning-of-line)
;; Loop till we look at a valid entry.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(while (not (or found (if backward (bobp) (eobp))))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(cond ((setq found (or (bibtex-valid-entry)
(and (not bibtex-sort-ignore-string-entries)
(setq bounds (bibtex-parse-string))
(cons (bibtex-start-of-field bounds)
(bibtex-end-of-string bounds))))))
(backward (re-search-backward "^[ \t]*@" nil 'move))
(t (if (re-search-forward "\n\\([ \t]*@\\)" nil 'move)
(goto-char (match-beginning 1))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
found))
(defun bibtex-map-entries (fun)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Call FUN for each BibTeX entry in buffer (possibly narrowed).
FUN is called with three arguments, the key of the entry and the buffer
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
positions of beginning and end of entry. Also, point is at beginning of
entry and `match-data' corresponds to the header of the entry,
see regexp `bibtex-entry-head'. If `bibtex-sort-ignore-string-entries'
is non-nil, FUN is not called for @String entries."
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let ((case-fold-search t)
(end-marker (make-marker))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
found)
;; Use marker to keep track of the buffer position of the end of
;; a BibTeX entry as this position may change during reformatting.
(set-marker-insertion-type end-marker t)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(save-excursion
(goto-char (point-min))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(while (setq found (bibtex-skip-to-valid-entry))
(set-marker end-marker (cdr found))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(looking-at bibtex-any-entry-maybe-empty-head)
(funcall fun (bibtex-key-in-head "") (car found) end-marker)
(goto-char end-marker)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-progress-message (&optional flag interval)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Echo a message about progress of current buffer.
If FLAG is a string, the message is initialized (in this case a
value for INTERVAL may be given as well (if not this is set to 5)).
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
If FLAG is `done', the message is deinitialized.
If FLAG is nil, a message is echoed if point was incremented at least
`bibtex-progress-interval' percent since last message was echoed."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(cond ((stringp flag)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(setq bibtex-progress-lastmes flag
bibtex-progress-interval (or interval 5)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-progress-lastperc 0))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((eq flag 'done)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(message "%s (done)" bibtex-progress-lastmes)
(setq bibtex-progress-lastmes nil))
(t
(let* ((size (- (point-max) (point-min)))
(perc (if (= size 0)
100
(/ (* 100 (- (point) (point-min))) size))))
(when (>= perc (+ bibtex-progress-lastperc
bibtex-progress-interval))
(setq bibtex-progress-lastperc perc)
(message "%s (%d%%)" bibtex-progress-lastmes perc))))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-field-left-delimiter ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Return a string dependent on `bibtex-field-delimiters'."
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (eq bibtex-field-delimiters 'braces)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
"{"
"\""))
(defun bibtex-field-right-delimiter ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Return a string dependent on `bibtex-field-delimiters'."
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (eq bibtex-field-delimiters 'braces)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
"}"
"\""))
(defun bibtex-entry-left-delimiter ()
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Return a string dependent on `bibtex-entry-delimiters'."
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (eq bibtex-entry-delimiters 'braces)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
"{"
"("))
(defun bibtex-entry-right-delimiter ()
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Return a string dependent on `bibtex-entry-delimiters'."
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (eq bibtex-entry-delimiters 'braces)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
"}"
")"))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-flash-head (prompt)
"Flash at BibTeX entry head before point, if it exists."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(pnt (point)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(save-excursion
(bibtex-beginning-of-entry)
(when (and (looking-at bibtex-any-entry-maybe-empty-head)
(< (point) pnt))
(goto-char (match-beginning bibtex-type-in-head))
(if (and (< 0 blink-matching-delay)
(pos-visible-in-window-p (point)))
(sit-for blink-matching-delay)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(message "%s%s" prompt (buffer-substring-no-properties
(point) (match-end bibtex-key-in-head))))))))
1992-07-16 21:47:34 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defun bibtex-make-optional-field (field)
"Make an optional field named FIELD in current BibTeX entry."
(if (consp field)
(bibtex-make-field (cons (concat "OPT" (car field)) (cdr field)))
(bibtex-make-field (concat "OPT" field))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-move-outside-of-entry ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Make sure point is outside of a BibTeX entry."
(let ((orig-point (point)))
(bibtex-end-of-entry)
(when (< (point) orig-point)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; We moved backward, so we weren't inside an entry to begin with.
;; Leave point at the beginning of a line, and preferably
;; at the beginning of a paragraph.
(goto-char orig-point)
(beginning-of-line 1)
(unless (= ?\n (char-before (1- (point))))
(re-search-forward "^[ \t]*[@\n]" nil 'move)
(backward-char 1)))
(skip-chars-forward " \t\n")))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-beginning-of-first-entry ()
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
"Go to beginning of line of first BibTeX entry in buffer.
If `bibtex-sort-ignore-string-entries' is non-nil, @String entries
are ignored. Return point"
1992-07-16 21:47:34 +00:00
(goto-char (point-min))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(bibtex-skip-to-valid-entry)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(point))
1992-07-16 21:47:34 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-enclosing-field (&optional comma noerr)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
"Search for BibTeX field enclosing point.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
For `bibtex-mode''s internal algorithms, a field begins at the comma
following the preceding field. Usually, this is not what the user expects.
Thus if COMMA is non-nil, the \"current field\" includes the terminating comma
as well as the entry delimiter if it appears on the same line.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Unless NOERR is non-nil, signal an error if no enclosing field is found.
On success return bounds, nil otherwise. Do not move point."
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(save-excursion
(when comma
(end-of-line)
(skip-chars-backward " \t")
;; Ignore entry delimiter and comma at end of line.
(if (memq (preceding-char) '(?} ?\))) (forward-char -1))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (= (preceding-char) ?,) (forward-char -1)))
(let ((bounds (bibtex-search-backward-field bibtex-field-name t)))
(cond ((and bounds
(<= (bibtex-start-of-field bounds) (point))
(>= (bibtex-end-of-field bounds) (point)))
bounds)
((not noerr)
(error "Can't find enclosing BibTeX field"))))))
(defun bibtex-beginning-first-field (&optional beg)
"Move point to beginning of first field.
Optional arg BEG is beginning of entry."
(if beg (goto-char beg) (bibtex-beginning-of-entry))
(looking-at bibtex-any-entry-maybe-empty-head)
(goto-char (match-end 0)))
(defun bibtex-insert-kill (n &optional comma)
"Reinsert the Nth stretch of killed BibTeX text (field or entry).
Optional arg COMMA is as in `bibtex-enclosing-field'."
(unless bibtex-last-kill-command (error "BibTeX kill ring is empty"))
(let ((fun (lambda (kryp kr) ; adapted from `current-kill'
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(car (set kryp (nthcdr (mod (- n (length (eval kryp)))
(length kr)) kr))))))
(if (eq bibtex-last-kill-command 'field)
(progn
;; insert past the current field
(goto-char (bibtex-end-of-field (bibtex-enclosing-field comma)))
(push-mark)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-make-field (funcall fun 'bibtex-field-kill-ring-yank-pointer
bibtex-field-kill-ring) t nil t))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; insert past the current entry
(bibtex-skip-to-valid-entry)
(push-mark)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(insert (funcall fun 'bibtex-entry-kill-ring-yank-pointer
bibtex-entry-kill-ring))
(unless (functionp bibtex-reference-keys)
;; update `bibtex-reference-keys'
(save-excursion
(goto-char (mark t))
(looking-at bibtex-any-entry-maybe-empty-head)
(let ((key (bibtex-key-in-head)))
(if key (push (cons key t) bibtex-reference-keys))))))))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-format-entry ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Helper function for `bibtex-clean-entry'.
Formats current entry according to variable `bibtex-entry-format'."
;; initialize `bibtex-field-braces-opt' if necessary
(if (and bibtex-field-braces-alist (not bibtex-field-braces-opt))
(setq bibtex-field-braces-opt
(bibtex-field-re-init bibtex-field-braces-alist 'braces)))
;; initialize `bibtex-field-strings-opt' if necessary
(if (and bibtex-field-strings-alist (not bibtex-field-strings-opt))
(setq bibtex-field-strings-opt
(bibtex-field-re-init bibtex-field-strings-alist 'strings)))
(let ((case-fold-search t)
(format (if (eq bibtex-entry-format t)
'(realign opts-or-alts required-fields numerical-fields
page-dashes whitespace inherit-booktitle
last-comma delimiters unify-case braces
strings)
bibtex-entry-format))
(left-delim-re (regexp-quote (bibtex-field-left-delimiter)))
bounds crossref-key req-field-list default-field-list field-list
alt-fields error-field-name)
(unwind-protect
;; formatting (undone if error occurs)
(atomic-change-group
(save-excursion
(save-restriction
(bibtex-narrow-to-entry)
;; There are more elegant high-level functions for several tasks
;; done by `bibtex-format-entry'. However, they contain some
;; redundancy compared with what we need to do anyway.
;; So for speed-up we avoid using them.
;; (`bibtex-format-entry' is called often by `bibtex-reformat'.)
;; identify entry type
(goto-char (point-min))
(or (re-search-forward bibtex-entry-type nil t)
(error "Not inside a BibTeX entry"))
(let* ((beg-type (1+ (match-beginning 0)))
(end-type (match-end 0))
(entry-list (assoc-string (buffer-substring-no-properties
beg-type end-type)
bibtex-entry-field-alist t)))
;; unify case of entry type
(when (memq 'unify-case format)
(delete-region beg-type end-type)
(insert (car entry-list)))
;; update left entry delimiter
(when (memq 'delimiters format)
(goto-char end-type)
(skip-chars-forward " \t\n")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(delete-char 1)
(insert (bibtex-entry-left-delimiter)))
;; Do we have a crossref key?
(goto-char (point-min))
(if (setq bounds (bibtex-search-forward-field
"\\(OPT\\)?crossref"))
(let ((text (bibtex-text-in-field-bounds bounds t)))
(unless (equal "" text)
(setq crossref-key text))))
;; list of required fields appropriate for an entry with
;; or without crossref key.
(setq req-field-list (if (and crossref-key (nth 2 entry-list))
(car (nth 2 entry-list))
(car (nth 1 entry-list)))
;; default list of fields that may appear in this entry
default-field-list (append (nth 0 (nth 1 entry-list))
(nth 1 (nth 1 entry-list))
bibtex-user-optional-fields)))
;; process all fields
(bibtex-beginning-first-field (point-min))
(while (setq bounds (bibtex-parse-field))
(let* ((beg-field (copy-marker (bibtex-start-of-field bounds)))
(end-field (copy-marker (bibtex-end-of-field bounds) t))
(beg-name (copy-marker (bibtex-start-of-name-in-field bounds)))
(end-name (copy-marker (bibtex-end-of-name-in-field bounds)))
(beg-text (copy-marker (bibtex-start-of-text-in-field bounds)))
(end-text (copy-marker (bibtex-end-of-text-in-field bounds) t))
(opt-alt (string-match "OPT\\|ALT"
(buffer-substring-no-properties
beg-name (+ beg-name 3))))
(field-name (buffer-substring-no-properties
(if opt-alt (+ beg-name 3) beg-name) end-name))
(empty-field (equal "" (bibtex-text-in-field-bounds bounds t)))
deleted)
;; keep track of alternatives
(if (nth 3 (assoc-string field-name req-field-list t))
(push field-name alt-fields))
(if (memq 'opts-or-alts format)
;; delete empty optional and alternative fields
;; (but keep empty required fields)
(cond ((and empty-field
(or opt-alt
(let ((field (assoc-string
field-name req-field-list t)))
(or (not field) ; OPT field
(nth 3 field))))) ; ALT field
(delete-region beg-field end-field)
(setq deleted t))
;; otherwise nonempty field: delete "OPT" or "ALT"
(opt-alt
(goto-char beg-name)
(delete-char 3))))
(unless deleted
(push field-name field-list)
;; Remove whitespace at beginning and end of field.
;; We do not look at individual parts of the field
;; as {foo } # bar # { baz} is a fine field.
(when (memq 'whitespace format)
(goto-char beg-text)
(if (looking-at "\\([{\"]\\)[ \t\n]+")
(replace-match "\\1"))
(goto-char end-text)
(if (looking-back "[ \t\n]+\\([}\"]\\)" beg-text t)
(replace-match "\\1")))
;; remove delimiters from purely numerical fields
(when (and (memq 'numerical-fields format)
(progn (goto-char beg-text)
(looking-at "\\(\"[0-9]+\"\\)\\|\\({[0-9]+}\\)")))
(goto-char end-text)
(delete-char -1)
(goto-char beg-text)
(delete-char 1))
;; update delimiters
(when (memq 'delimiters format)
(goto-char beg-text)
;; simplified from `bibtex-parse-field-text', as we
;; already checked that the field format is correct
(while (< (point) end-text)
(if (looking-at bibtex-field-const)
(goto-char (match-end 0))
(let ((boundaries (bibtex-parse-field-string)))
(if (looking-at left-delim-re)
(goto-char (cdr boundaries))
(delete-char 1)
(insert (bibtex-field-left-delimiter))
(goto-char (1- (cdr boundaries)))
(delete-char 1)
(insert (bibtex-field-right-delimiter)))))
(if (looking-at "[ \t\n]*#[ \t\n]*")
(goto-char (match-end 0)))))
;; update page dashes
(if (and (memq 'page-dashes format)
(bibtex-string= field-name "pages")
(progn (goto-char beg-text)
(looking-at
"\\([\"{][0-9]+\\)[ \t\n]*--?[ \t\n]*\\([0-9]+[\"}]\\)")))
(replace-match "\\1-\\2"))
;; enclose field text by braces according to
;; `bibtex-field-braces-alist'.
(let (case-fold-search temp) ; Case-sensitive search
(when (and (memq 'braces format)
(setq temp (cdr (assoc-string field-name
bibtex-field-braces-opt t))))
(goto-char beg-text)
(while (re-search-forward temp end-text t)
(let ((beg (match-beginning 0))
(bounds (bibtex-find-text-internal nil t)))
(unless (or (nth 4 bounds) ; string constant
;; match already surrounded by braces
;; (braces are inside field delimiters)
(and (< (point) (1- (nth 2 bounds)))
(< (1+ (nth 1 bounds)) beg)
(looking-at "}")
(save-excursion (goto-char (1- beg))
(looking-at "{"))))
(insert "}")
(goto-char beg)
(insert "{")))))
;; replace field text by BibTeX string constants
;; according to `bibtex-field-strings-alist'.
(when (and (memq 'strings format)
(setq temp (cdr (assoc-string field-name
bibtex-field-strings-opt t))))
(goto-char beg-text)
(dolist (re temp)
(while (re-search-forward (car re) end-text t)
(let ((bounds (save-match-data
(bibtex-find-text-internal nil t))))
(unless (nth 4 bounds)
;; if match not at right subfield boundary...
(if (< (match-end 0) (1- (nth 2 bounds)))
(insert " # " (bibtex-field-left-delimiter))
(delete-char 1))
(replace-match (cdr re))
(goto-char (match-beginning 0))
;; if match not at left subfield boundary...
(if (< (1+ (nth 1 bounds)) (match-beginning 0))
(insert (bibtex-field-right-delimiter) " # ")
(delete-backward-char 1))))))))
;; use book title of crossref'd entry
(if (and (memq 'inherit-booktitle format)
empty-field
(bibtex-string= field-name "booktitle")
crossref-key)
(let ((title (save-excursion
(save-restriction
(widen)
(if (bibtex-search-entry crossref-key t)
(bibtex-text-in-field "title"))))))
(when title
(setq empty-field nil)
(goto-char (1+ beg-text))
(insert title))))
;; if empty field is a required field, complain
(when (and empty-field
(memq 'required-fields format)
(assoc-string field-name req-field-list t))
(setq error-field-name field-name)
(error "Mandatory field `%s' is empty" field-name))
;; unify case of field name
(if (memq 'unify-case format)
(let ((fname (car (assoc-string field-name
default-field-list t))))
(if fname
(progn
(delete-region beg-name end-name)
(goto-char beg-name)
(insert fname))
;; there are no rules we could follow
(downcase-region beg-name end-name))))
;; update point
(goto-char end-field))))
;; check whether all required fields are present
(if (memq 'required-fields format)
(let ((found 0) alt-list)
(dolist (fname req-field-list)
(cond ((nth 3 fname) ; t if field has alternative flag
(push (car fname) alt-list)
(if (member-ignore-case (car fname) field-list)
(setq found (1+ found))))
((not (member-ignore-case (car fname) field-list))
;; If we use the crossref field, a required field
;; can have the OPT prefix. So if it was empty,
;; we have deleted by now. Nonetheless we can
;; move point on this empty field.
(setq error-field-name (car fname))
(error "Mandatory field `%s' is missing" (car fname)))))
(if alt-list
(cond ((= found 0)
(if alt-fields
(setq error-field-name (car (last alt-fields))))
(error "Alternative mandatory field `%s' is missing"
alt-list))
((> found 1)
(if alt-fields
(setq error-field-name (car (last alt-fields))))
(error "Alternative fields `%s' are defined %s times"
alt-list found))))))
;; update comma after last field
(if (memq 'last-comma format)
(cond ((and bibtex-comma-after-last-field
(not (looking-at ",")))
(insert ","))
((and (not bibtex-comma-after-last-field)
(looking-at ","))
(delete-char 1))))
;; update right entry delimiter
(if (looking-at ",")
(forward-char))
(when (memq 'delimiters format)
(skip-chars-forward " \t\n")
(delete-char 1)
(insert (bibtex-entry-right-delimiter)))
;; realign and fill entry
(if (memq 'realign format)
(bibtex-fill-entry)))))
2010-01-14 18:37:23 +00:00
;; Unwindform: move point to location where error occurred if possible
(if error-field-name
(let (bounds)
(when (save-excursion
(bibtex-beginning-of-entry)
(setq bounds
(bibtex-search-forward-field
;; If we use the crossref field, a required field
;; can have the OPT prefix
(concat "\\(OPT\\|ALT\\)?" error-field-name) t)))
(goto-char (bibtex-start-of-text-in-field bounds))
(bibtex-find-text)))))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-field-re-init (regexp-alist type)
"Calculate optimized value for bibtex-regexp-TYPE-opt.
This value is based on bibtex-regexp-TYPE-alist. TYPE is 'braces or 'strings.
Return optimized value to be used by `bibtex-format-entry'."
(setq regexp-alist
(mapcar (lambda (e)
(list (car e)
(replace-regexp-in-string " +" "[ \t\n]+" (nth 1 e))
(nth 2 e))) ; nil for 'braces'.
regexp-alist))
(let (opt-list)
;; Loop over field names
(dolist (field (delete-dups (apply 'append (mapcar 'car regexp-alist))))
(let (rules)
;; Collect all matches we have for this field name
(dolist (e regexp-alist)
(if (assoc-string field (car e) t)
(push (cons (nth 1 e) (nth 2 e)) rules)))
(if (eq type 'braces)
;; concatenate all regexps to a single regexp
(setq rules (concat "\\(?:" (mapconcat 'car rules "\\|") "\\)")))
;; create list of replacement rules.
(push (cons field rules) opt-list)))
opt-list))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-autokey-abbrev (string len)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Return an abbreviation of STRING with at least LEN characters.
If LEN is positive the abbreviation is terminated only after a consonant
or at the word end. If LEN is negative the abbreviation is strictly
enforced using abs (LEN) characters. If LEN is not a number, STRING
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
is returned unchanged."
(cond ((or (not (numberp len))
(<= (length string) (abs len)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
string)
((equal len 0)
"")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
((< len 0)
(substring string 0 (abs len)))
(t (let* ((case-fold-search t)
(abort-char (string-match "[^aeiou]" string (1- len))))
(if abort-char
(substring string 0 (1+ abort-char))
string)))))
(defun bibtex-autokey-get-field (field &optional change-list)
"Get content of BibTeX field FIELD. Return empty string if not found.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
Optional arg CHANGE-LIST is a list of substitution patterns that is
applied to the content of FIELD. It is an alist with pairs
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
\(OLD-REGEXP . NEW-STRING\)."
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let* ((bibtex-expand-strings bibtex-autokey-expand-strings)
(content (bibtex-text-in-field field bibtex-autokey-use-crossref))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
case-fold-search)
(unless content (setq content ""))
(dolist (pattern change-list content)
(setq content (replace-regexp-in-string (car pattern)
(cdr pattern)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
content t)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-autokey-get-names ()
"Get contents of the name field of the current entry.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Do some modifications based on `bibtex-autokey-name-change-strings'.
Return the names as a concatenated string obeying `bibtex-autokey-names'
and `bibtex-autokey-names-stretch'."
(let ((names (bibtex-autokey-get-field "author\\|editor"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
bibtex-autokey-name-change-strings)))
;; Some entries do not have a name field.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (string= "" names)
names
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let* ((case-fold-search t)
(name-list (mapcar 'bibtex-autokey-demangle-name
(split-string names "[ \t\n]+and[ \t\n]+")))
additional-names)
(unless (or (not (numberp bibtex-autokey-names))
(<= (length name-list)
(+ bibtex-autokey-names
bibtex-autokey-names-stretch)))
;; Take `bibtex-autokey-names' elements from beginning of name-list
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq name-list (nreverse (nthcdr (- (length name-list)
bibtex-autokey-names)
(nreverse name-list)))
additional-names bibtex-autokey-additional-names))
(concat (mapconcat 'identity name-list
bibtex-autokey-name-separator)
additional-names)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-autokey-demangle-name (fullname)
"Get the last part from a well-formed FULLNAME and perform abbreviations."
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(let* (case-fold-search
(name (cond ((string-match "\\([[:upper:]][^, ]*\\)[^,]*," fullname)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Name is of the form "von Last, First" or
;; "von Last, Jr, First"
;; --> Take the first capital part before the comma
(match-string 1 fullname))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
((string-match "\\([^, ]*\\)," fullname)
;; Strange name: we have a comma, but nothing capital
;; So we accept even lowercase names
(match-string 1 fullname))
((string-match "\\(\\<[[:lower:]][^ ]* +\\)+\\([[:upper:]][^ ]*\\)"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
fullname)
;; name is of the form "First von Last", "von Last",
;; "First von von Last", or "d'Last"
;; --> take the first capital part after the "von" parts
(match-string 2 fullname))
((string-match "\\([^ ]+\\) *\\'" fullname)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; name is of the form "First Middle Last" or "Last"
;; --> take the last token
(match-string 1 fullname))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(t (error "Name `%s' is incorrectly formed" fullname)))))
(funcall bibtex-autokey-name-case-convert-function
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(bibtex-autokey-abbrev name bibtex-autokey-name-length))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defun bibtex-autokey-get-year ()
"Return year field contents as a string obeying `bibtex-autokey-year-length'."
(let ((yearfield (bibtex-autokey-get-field "year")))
(substring yearfield (max 0 (- (length yearfield)
bibtex-autokey-year-length)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-autokey-get-title ()
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Get title field contents up to a terminator.
Return the result as a string"
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((case-fold-search t)
(titlestring
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-autokey-get-field "title"
bibtex-autokey-titleword-change-strings)))
;; ignore everything past a terminator
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (string-match bibtex-autokey-title-terminators titlestring)
(setq titlestring (substring titlestring 0 (match-beginning 0))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; gather words from titlestring into a list. Ignore
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; specific words and use only a specific amount of words.
(let ((counter 0)
(ignore-re (concat "\\`\\(?:"
(mapconcat 'identity
bibtex-autokey-titleword-ignore "\\|")
"\\)\\'"))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
titlewords titlewords-extra word)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(while (and (or (not (numberp bibtex-autokey-titlewords))
(< counter (+ bibtex-autokey-titlewords
bibtex-autokey-titlewords-stretch)))
(string-match "\\b\\w+" titlestring))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq word (match-string 0 titlestring)
titlestring (substring titlestring (match-end 0)))
;; Ignore words matched by one of the elements of
;; `bibtex-autokey-titleword-ignore'. Case is significant.
(unless (let (case-fold-search)
(string-match ignore-re word))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(setq counter (1+ counter))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(if (or (not (numberp bibtex-autokey-titlewords))
(<= counter bibtex-autokey-titlewords))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(push word titlewords)
(push word titlewords-extra))))
;; Obey `bibtex-autokey-titlewords-stretch':
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; If by now we have processed all words in titlestring, we include
;; titlewords-extra in titlewords. Otherwise, we ignore titlewords-extra.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(unless (string-match "\\b\\w+" titlestring)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq titlewords (append titlewords-extra titlewords)))
(mapconcat 'bibtex-autokey-demangle-title (nreverse titlewords)
bibtex-autokey-titleword-separator))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-autokey-demangle-title (titleword)
"Do some abbreviations on TITLEWORD.
The rules are defined in `bibtex-autokey-titleword-abbrevs'
and `bibtex-autokey-titleword-length'."
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((case-fold-search t)
(alist bibtex-autokey-titleword-abbrevs))
(while (and alist
(not (string-match (concat "\\`\\(?:" (caar alist) "\\)\\'")
titleword)))
(setq alist (cdr alist)))
(if alist
(cdar alist)
(funcall bibtex-autokey-titleword-case-convert-function
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(bibtex-autokey-abbrev titleword bibtex-autokey-titleword-length)))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-generate-autokey ()
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Generate automatically a key for a BibTeX entry.
Use the author/editor, the year and the title field.
The algorithm works as follows.
The name part:
1. Use the author or editor field to generate the name part of the key.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
Expand BibTeX strings if `bibtex-autokey-expand-strings' is non-nil.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
2. Change the content of the name field according to
`bibtex-autokey-name-change-strings' (see there for further detail).
3. Use the first `bibtex-autokey-names' names in the name field. If there
are up to `bibtex-autokey-names' + `bibtex-autokey-names-stretch' names,
use all names.
4. Use only the last names to form the name part. From these last names,
take at least `bibtex-autokey-name-length' characters (truncate only
after a consonant or at a word end).
5. Convert all last names using the function
`bibtex-autokey-name-case-convert-function'.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
6. Build the name part of the key by concatenating all abbreviated last
names with the string `bibtex-autokey-name-separator' between any two.
If there are more names in the name field than names used in the name
part, append the string `bibtex-autokey-additional-names'.
The year part:
1. Build the year part of the key by truncating the content of the year
field to the rightmost `bibtex-autokey-year-length' digits (useful
values are 2 and 4).
2. If the year field (or any other field required to generate the key)
is absent, but the entry has a valid crossref field and
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
`bibtex-autokey-use-crossref' is non-nil, use the field of the
crossreferenced entry instead.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
The title part
1. Change the content of the title field according to
`bibtex-autokey-titleword-change-strings' (see there for further detail).
2. Truncate the title before the first match of
`bibtex-autokey-title-terminators' and delete those words which appear
in `bibtex-autokey-titleword-ignore'. Build the title part using the
first `bibtex-autokey-titlewords' words from this truncated title.
If the truncated title ends after up to `bibtex-autokey-titlewords' +
`bibtex-autokey-titlewords-stretch' words, use all words from the
truncated title.
3. For every title word that appears in `bibtex-autokey-titleword-abbrevs'
use the corresponding abbreviation (see documentation of this variable
for further detail).
4. From every title word not generated by an abbreviation, take at least
`bibtex-autokey-titleword-length' characters (truncate only after
a consonant or at a word end).
5. Convert all title words using the function
`bibtex-autokey-titleword-case-convert-function'.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
6. Build the title part by concatenating all abbreviated title words with
the string `bibtex-autokey-titleword-separator' between any two.
Concatenate the key:
1. Concatenate `bibtex-autokey-prefix-string', the name part, the year
part and the title part. If the name part and the year part are both
non-empty insert `bibtex-autokey-name-year-separator' between the two.
If the title part and the year (or name) part are non-empty, insert
`bibtex-autokey-year-title-separator' between the two.
2. If `bibtex-autokey-before-presentation-function' is non-nil, it must be
a function taking one argument. Call this function with the generated
key as the argument. Use the return value of this function (a string)
as the key.
3. If `bibtex-autokey-edit-before-use' is non-nil, present the key in the
minibuffer to the user for editing. Insert the key given by the user."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let* ((names (bibtex-autokey-get-names))
(year (bibtex-autokey-get-year))
(title (bibtex-autokey-get-title))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(autokey (concat bibtex-autokey-prefix-string
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
names
(unless (or (equal names "")
(equal year ""))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-autokey-name-year-separator)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
year
(unless (or (and (equal names "")
(equal year ""))
(equal title ""))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-autokey-year-title-separator)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
title)))
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
(if bibtex-autokey-before-presentation-function
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(funcall bibtex-autokey-before-presentation-function autokey)
autokey)))
1992-07-16 21:47:34 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defun bibtex-global-key-alist ()
"Return global key alist based on `bibtex-files'."
(if bibtex-files
(apply 'append
(mapcar (lambda (buf)
(with-current-buffer buf bibtex-reference-keys))
;; include current buffer only if it uses `bibtex-mode'
(bibtex-initialize (eq major-mode 'bibtex-mode))))
(if (eq major-mode 'bibtex-mode)
bibtex-reference-keys)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defun bibtex-read-key (prompt &optional key global)
"Read BibTeX key from minibuffer using PROMPT and default KEY.
If optional arg GLOBAL is non-nil, completion is based on the keys in
`bibtex-reference-keys' of `bibtex-files',"
(let (completion-ignore-case)
(completing-read prompt (if global (bibtex-global-key-alist)
bibtex-reference-keys)
nil nil key 'bibtex-key-history)))
(defun bibtex-read-string-key (&optional key)
"Read BibTeX string key from minibuffer using default KEY."
(let ((completion-ignore-case t))
(completing-read "String key: " bibtex-strings
nil nil key 'bibtex-key-history)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defun bibtex-parse-keys (&optional abortable verbose)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Set `bibtex-reference-keys' to the keys used in the whole buffer.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Find both entry keys and crossref entries. If ABORTABLE is non-nil abort
on user input. If VERBOSE is non-nil give messages about progress.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
Return alist of keys if parsing was completed, `aborted' otherwise.
If `bibtex-parse-keys-fast' is non-nil, use fast but simplified algorithm
for parsing BibTeX keys. If parsing fails, try to set this variable to nil."
(if (eq major-mode 'bibtex-mode)
(let (ref-keys crossref-keys)
(save-excursion
(save-match-data
(if verbose
(bibtex-progress-message
(concat (buffer-name) ": parsing reference keys")))
(catch 'userkey
(goto-char (point-min))
(if bibtex-parse-keys-fast
(let ((case-fold-search t)
(re (concat bibtex-entry-head "\\|"
",[ \t\n]*crossref[ \t\n]*=[ \t\n]*"
"\\(\"[^\"]*\"\\|{[^}]*}\\)[ \t\n]*[,})]")))
(while (re-search-forward re nil t)
(if (and abortable (input-pending-p))
;; user has aborted by typing a key: return `aborted'
(throw 'userkey 'aborted))
(cond ((match-end 3)
;; This is a crossref.
(let ((key (buffer-substring-no-properties
(1+ (match-beginning 3)) (1- (match-end 3)))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(unless (assoc key crossref-keys)
(push (list key) crossref-keys))))
;; only keys of known entries
((assoc-string (bibtex-type-in-head)
bibtex-entry-field-alist t)
;; This is an entry.
(let ((key (bibtex-key-in-head)))
(unless (assoc key ref-keys)
(push (cons key t) ref-keys)))))))
(let (;; ignore @String entries because they are handled
;; separately by `bibtex-parse-strings'
(bibtex-sort-ignore-string-entries t)
bounds)
(bibtex-map-entries
(lambda (key beg end)
(if (and abortable
(input-pending-p))
;; user has aborted by typing a key: return `aborted'
(throw 'userkey 'aborted))
(if verbose (bibtex-progress-message))
(unless (assoc key ref-keys)
(push (cons key t) ref-keys))
(if (and (setq bounds (bibtex-search-forward-field "crossref" end))
(setq key (bibtex-text-in-field-bounds bounds t))
(not (assoc key crossref-keys)))
(push (list key) crossref-keys))))))
(dolist (key crossref-keys)
(unless (assoc (car key) ref-keys) (push key ref-keys)))
(if verbose
(bibtex-progress-message 'done))
;; successful operation --> return `bibtex-reference-keys'
(setq bibtex-reference-keys ref-keys)))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defun bibtex-parse-strings (&optional add abortable)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Set `bibtex-strings' to the string definitions in the whole buffer.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If ADD is non-nil add the new strings to `bibtex-strings' instead of
simply resetting it. If ADD is an alist of strings, also add ADD to
`bibtex-strings'. If ABORTABLE is non-nil abort on user input.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Return alist of strings if parsing was completed, `aborted' otherwise."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(save-match-data
(goto-char (point-min))
(let ((strings (if (and add (not (functionp bibtex-strings)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
bibtex-strings))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bounds key)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(if (listp add)
(dolist (string add)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless (assoc-string (car string) strings t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(push string strings))))
(catch 'userkey
(while (setq bounds (bibtex-search-forward-string))
(if (and abortable
(input-pending-p))
;; user has aborted by typing a key --> return `aborted'
(throw 'userkey 'aborted))
(setq key (bibtex-reference-key-in-string bounds))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless (assoc-string key strings t)
(push (cons key (bibtex-text-in-string bounds t))
strings))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(goto-char (bibtex-end-of-text-in-string bounds)))
;; successful operation --> return `bibtex-strings'
(setq bibtex-strings strings))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defun bibtex-strings ()
"Return `bibtex-strings'. Initialize this variable if necessary."
(if (functionp bibtex-strings)
(bibtex-parse-strings (bibtex-string-files-init))
bibtex-strings))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-string-files-init ()
"Return initialization for `bibtex-strings'.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Use `bibtex-predefined-strings' and BibTeX files `bibtex-string-files'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-match-data
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((dirlist (split-string (or bibtex-string-file-path default-directory)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
":+"))
(case-fold-search)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
string-files fullfilename compl bounds found)
;; collect absolute file names of valid string files
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(dolist (filename bibtex-string-files)
(unless (string-match "\\.bib\\'" filename)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(setq filename (concat filename ".bib")))
;; test filenames
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if (file-name-absolute-p filename)
(if (file-readable-p filename)
(push filename string-files)
(error "BibTeX strings file %s not found" filename))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(dolist (dir dirlist)
(when (file-readable-p
(setq fullfilename (expand-file-name filename dir)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(push fullfilename string-files)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(setq found t)))
(unless found
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(error "File %s not in paths defined via bibtex-string-file-path"
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
filename))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; parse string files
(dolist (filename string-files)
(with-temp-buffer
(insert-file-contents filename)
(goto-char (point-min))
(while (setq bounds (bibtex-search-forward-string))
(push (cons (bibtex-reference-key-in-string bounds)
(bibtex-text-in-string bounds t))
compl)
(goto-char (bibtex-end-of-string bounds)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(append bibtex-predefined-strings (nreverse compl)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-parse-buffers-stealthily ()
"Parse buffer in the background during idle time.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Called by `run-with-idle-timer'. Whenever Emacs has been idle
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
for `bibtex-parse-keys-timeout' seconds, parse all BibTeX buffers
which have been modified after last parsing.
Parsing initializes `bibtex-reference-keys' and `bibtex-strings'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(let ((buffers (buffer-list))
(strings-init (bibtex-string-files-init)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(while (and buffers (not (input-pending-p)))
(set-buffer (car buffers))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(if (and (eq major-mode 'bibtex-mode)
(not (eq (buffer-modified-tick)
bibtex-buffer-last-parsed-tick)))
(save-restriction
(widen)
;; Output no progress messages in `bibtex-parse-keys'
;; because when in `y-or-n-p' that can hide the question.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if (and (listp (bibtex-parse-keys t))
;; update `bibtex-strings'
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(listp (bibtex-parse-strings strings-init t)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; remember that parsing was successful
(setq bibtex-buffer-last-parsed-tick (buffer-modified-tick)))))
(setq buffers (cdr buffers))))))
;;;###autoload
(defun bibtex-initialize (&optional current force select)
"(Re)Initialize BibTeX buffers.
Visit the BibTeX files defined by `bibtex-files' and return a list
of corresponding buffers.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Initialize in these buffers `bibtex-reference-keys' if not yet set.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
List of BibTeX buffers includes current buffer if CURRENT is non-nil.
If FORCE is non-nil, (re)initialize `bibtex-reference-keys' even if
already set. If SELECT is non-nil interactively select a BibTeX buffer.
When called interactively, FORCE is t, CURRENT is t if current buffer uses
`bibtex-mode', and SELECT is t if current buffer does not use `bibtex-mode',"
(interactive (list (eq major-mode 'bibtex-mode) t
(not (eq major-mode 'bibtex-mode))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((file-path (split-string (or bibtex-file-path default-directory) ":+"))
file-list dir-list buffer-list)
;; generate list of BibTeX files
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(dolist (file bibtex-files)
(cond ((eq file 'bibtex-file-path)
(setq dir-list (append dir-list file-path)))
((file-accessible-directory-p file)
(push file dir-list))
((progn (unless (string-match "\\.bib\\'" file)
(setq file (concat file ".bib")))
(file-name-absolute-p file))
(push file file-list))
(t
(let (expanded-file-name found)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(dolist (dir file-path)
(when (file-readable-p
(setq expanded-file-name (expand-file-name file dir)))
(push expanded-file-name file-list)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq found t)))
(unless found
(error "File `%s' not in paths defined via bibtex-file-path"
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
file))))))
(dolist (file file-list)
(unless (file-readable-p file)
(error "BibTeX file `%s' not found" file)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; expand dir-list
(dolist (dir dir-list)
(setq file-list
(append file-list (directory-files dir t "\\.bib\\'" t))))
(delete-dups file-list)
;; visit files in FILE-LIST
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(dolist (file file-list)
(if (file-readable-p file)
(push (find-file-noselect file) buffer-list)))
;; Include current buffer iff we want it.
;; Exclude current buffer if it doesn't use `bibtex-mode'.
;; Thus calling `bibtex-initialize' gives meaningful results for
;; any current buffer.
(unless (and current (eq major-mode 'bibtex-mode)) (setq current nil))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(cond ((and current (not (memq (current-buffer) buffer-list)))
(push (current-buffer) buffer-list))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
((and (not current) (memq (current-buffer) buffer-list))
(setq buffer-list (delq (current-buffer) buffer-list))))
;; parse keys
(dolist (buffer buffer-list)
(with-current-buffer buffer
(if (or force (functionp bibtex-reference-keys))
(bibtex-parse-keys))
(unless (functionp bibtex-strings)
(bibtex-parse-strings (bibtex-string-files-init)))))
;; select BibTeX buffer
(if select
(if buffer-list
(switch-to-buffer
(completing-read "Switch to BibTeX buffer: "
(mapcar 'buffer-name buffer-list)
nil t
(if current (buffer-name (current-buffer)))))
(message "No BibTeX buffers defined")))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
buffer-list))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-complete-internal (completions)
"Complete word fragment before point to longest prefix of COMPLETIONS.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
COMPLETIONS is an alist of strings. If point is not after the part
of a word, all strings are listed. Return completion."
;; Return value is used by cleanup functions.
;; Code inspired by `lisp-complete-symbol'.
(let ((beg (save-excursion
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(re-search-backward "[ \t{\"]")
(forward-char)
(point)))
(end (point)))
(when (completion-in-region beg end completions)
(buffer-substring beg (point)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defun bibtex-complete-string-cleanup (str compl)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Cleanup after inserting string STR.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Remove enclosing field delimiters for STR. Display message with
expansion of STR using expansion list COMPL."
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; point is at position inside field where completion was requested
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(save-excursion
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(let ((abbr (cdr (if (stringp str)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(assoc-string str compl t)))))
(if abbr (message "Abbreviation for `%s'" abbr))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(bibtex-remove-delimiters))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defun bibtex-complete-crossref-cleanup (key)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Display summary message on entry KEY after completion of a crossref key.
Use `bibtex-summary-function' to generate summary."
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(save-excursion
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (and (stringp key)
(bibtex-search-entry key t))
(message "Ref: %s" (funcall bibtex-summary-function)))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(defun bibtex-copy-summary-as-kill (&optional arg)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Push summery of current BibTeX entry to kill ring.
Use `bibtex-summary-function' to generate summary.
If prefix ARG is non-nil push BibTeX entry's URL to kill ring
that is generated by calling `bibtex-url'."
(interactive "P")
(if arg (let ((url (bibtex-url nil t)))
(if url (kill-new (message "%s" url))
(message "No URL known")))
(save-excursion
(bibtex-beginning-of-entry)
(if (looking-at bibtex-entry-maybe-empty-head)
(kill-new (message "%s" (funcall bibtex-summary-function)))
(error "No entry found")))))
(defun bibtex-summary ()
"Return summary of current BibTeX entry.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Used as default value of `bibtex-summary-function'."
;; It would be neat to make this function customizable. How?
(if (looking-at bibtex-entry-maybe-empty-head)
(let* ((bibtex-autokey-name-case-convert-function 'identity)
(bibtex-autokey-name-length 'infty)
(bibtex-autokey-names 1)
(bibtex-autokey-names-stretch 0)
(bibtex-autokey-name-separator " ")
(bibtex-autokey-additional-names " etal")
(names (bibtex-autokey-get-names))
(bibtex-autokey-year-length 4)
(year (bibtex-autokey-get-year))
(bibtex-autokey-titlewords 5)
(bibtex-autokey-titlewords-stretch 2)
(bibtex-autokey-titleword-case-convert-function 'identity)
(bibtex-autokey-titleword-length 5)
(bibtex-autokey-titleword-separator " ")
(title (bibtex-autokey-get-title))
(journal (bibtex-autokey-get-field
"journal" bibtex-autokey-transcriptions))
(volume (bibtex-autokey-get-field "volume"))
(pages (bibtex-autokey-get-field "pages" '(("-.*\\'" . "")))))
(mapconcat (lambda (arg)
(if (not (string= "" (cdr arg)))
(concat (car arg) (cdr arg))))
`((" " . ,names) (" " . ,year) (": " . ,title)
(", " . ,journal) (" " . ,volume) (":" . ,pages))
""))
(error "Entry not found")))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-pop (arg direction)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Fill current field from the ARGth same field's text in DIRECTION.
Generic function used by `bibtex-pop-previous' and `bibtex-pop-next'."
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; parse current field
(let* ((bounds (bibtex-enclosing-field t))
(start-old-field (bibtex-start-of-field bounds))
(start-old-text (bibtex-start-of-text-in-field bounds))
(end-old-text (bibtex-end-of-text-in-field bounds))
(field-name (bibtex-name-in-field bounds t))
failure)
(save-excursion
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; if executed several times in a row, start each search where
;; the last one was finished
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(cond ((eq last-command 'bibtex-pop)
(goto-char (if (eq direction 'previous)
bibtex-pop-previous-search-point
bibtex-pop-next-search-point)))
((eq direction 'previous)
(bibtex-beginning-of-entry))
(t (bibtex-end-of-entry)))
;; Search for arg'th previous/next similar field
(while (and (not failure)
(>= (setq arg (1- arg)) 0))
;; The search of BibTeX fields is not bounded by entry boundaries
(if (eq direction 'previous)
(if (setq bounds (bibtex-search-backward-field field-name))
(goto-char (bibtex-start-of-field bounds))
(setq failure t))
(if (setq bounds (bibtex-search-forward-field field-name))
(goto-char (bibtex-end-of-field bounds))
(setq failure t))))
(if failure
(error "No %s matching BibTeX field"
(if (eq direction 'previous) "previous" "next"))
;; Found a matching field. Remember boundaries.
(let ((new-text (bibtex-text-in-field-bounds bounds))
(nbeg (copy-marker (bibtex-start-of-field bounds)))
(nend (copy-marker (bibtex-end-of-field bounds))))
(bibtex-flash-head "From: ")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Go back to where we started, delete old text, and pop new.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char end-old-text)
(delete-region start-old-text end-old-text)
(if (= nbeg start-old-field)
(insert (bibtex-field-left-delimiter)
(bibtex-field-right-delimiter))
(insert new-text))
(setq bibtex-pop-previous-search-point (marker-position nbeg)
bibtex-pop-next-search-point (marker-position nend))))))
(bibtex-find-text nil nil nil t)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq this-command 'bibtex-pop))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defun bibtex-beginning-of-field ()
"Move point backward to beginning of field.
This function uses a simple, fast algorithm assuming that the field
begins at the beginning of a line. We use this function for font-locking."
(let ((field-reg (concat "^[ \t]*" bibtex-field-name "[ \t]*=")))
(beginning-of-line)
(unless (looking-at field-reg)
(re-search-backward field-reg nil t))))
(defun bibtex-font-lock-url (bound &optional no-button)
"Font-lock for URLs. BOUND limits the search.
If NO-BUTTON is non-nil do not generate buttons."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((case-fold-search t)
(pnt (point))
name bounds start end found)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-beginning-of-field)
(while (and (not found)
(<= (point) bound)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(prog1 (re-search-forward bibtex-font-lock-url-regexp bound t)
(setq name (match-string-no-properties 1)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq bounds (bibtex-parse-field-text))
(progn
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(setq start (car bounds) end (nth 1 bounds))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; Always ignore field delimiters
(if (memq (char-before end) '(?\} ?\"))
(setq end (1- end)))
(if (memq (char-after start) '(?\{ ?\"))
(setq start (1+ start)))
(if (< start pnt) (setq start (min pnt end)))
(<= start bound)))
(if (<= pnt start)
(let ((lst bibtex-generate-url-list) url)
(while (and (not found) (setq url (car (pop lst))))
(goto-char start)
(setq found (and (bibtex-string= name (car url))
(re-search-forward (cdr url) end t))))))
(unless found (goto-char end)))
(if (and found (not no-button))
(bibtex-button (match-beginning 0) (match-end 0)
'bibtex-url (match-beginning 0)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
found))
(defun bibtex-font-lock-crossref (bound)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Font-lock for crossref fields. BOUND limits the search."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((case-fold-search t)
(pnt (point))
(crossref-reg (concat "^[ \t]*crossref[ \t]*=[ \t\n]*"
"\\(\"[^\"]*\"\\|{[^}]*}\\)[ \t\n]*[,})]"))
start end found)
(bibtex-beginning-of-field)
(while (and (not found)
(re-search-forward crossref-reg bound t))
(setq start (1+ (match-beginning 1))
end (1- (match-end 1))
found (>= start pnt)))
(if found (bibtex-button start end 'bibtex-search-crossref
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(buffer-substring-no-properties start end)
start t))
found))
(defun bibtex-font-lock-cite (matcher bound)
"Font-lock for cited keys.
MATCHER identifies the cited key, see `bibtex-cite-matcher-alist'.
BOUND limits the search."
(let (case-fold-search)
(if (re-search-forward (car matcher) bound t)
(let ((start (match-beginning (cdr matcher)))
(end (match-end (cdr matcher))))
(bibtex-button start end 'bibtex-search-crossref
(buffer-substring-no-properties start end)
start t t)
t))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defun bibtex-button-action (button)
"Call BUTTON's BibTeX function."
(apply (button-get button 'bibtex-function)
(button-get button 'bibtex-args)))
(define-button-type 'bibtex-url
'action 'bibtex-button-action
'bibtex-function 'bibtex-url
'help-echo (purecopy "mouse-2, RET: follow URL"))
(define-button-type 'bibtex-search-crossref
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
'action 'bibtex-button-action
'bibtex-function 'bibtex-search-crossref
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
'help-echo (purecopy "mouse-2, RET: follow crossref"))
(defun bibtex-button (beg end type &rest args)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Make a BibTeX button from BEG to END of type TYPE in the current buffer."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(make-text-button beg end 'type type 'bibtex-args args))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
;; Interactive Functions:
;;;###autoload
(defun bibtex-mode ()
"Major mode for editing BibTeX files.
General information on working with BibTeX mode:
Use commands such as \\<bibtex-mode-map>\\[bibtex-Book] to get a template for a specific entry.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
Then fill in all desired fields using \\[bibtex-next-field] to jump from field
to field. After having filled in all desired fields in the entry, clean the
new entry with the command \\[bibtex-clean-entry].
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Some features of BibTeX mode are available only by setting the variable
`bibtex-maintain-sorted-entries' to non-nil. However, then BibTeX mode
works only with buffers containing valid (syntactical correct) and sorted
entries. This is usually the case, if you have created a buffer completely
with BibTeX mode and finished every new entry with \\[bibtex-clean-entry].
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
For third party BibTeX files, call the command \\[bibtex-convert-alien]
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
to fully take advantage of all features of BibTeX mode.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
Special information:
A command such as \\[bibtex-Book] outlines the fields for a BibTeX book entry.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
The names of optional fields start with the string OPT, and are thus ignored
by BibTeX. The names of alternative fields from which only one is required
start with the string ALT. The OPT or ALT string may be removed from
the name of a field with \\[bibtex-remove-OPT-or-ALT].
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
\\[bibtex-make-field] inserts a new field after the current one.
\\[bibtex-kill-field] kills the current field entirely.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
\\[bibtex-yank] yanks the last recently killed field after the current field.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
\\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
\\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}.
\\[bibtex-find-text] moves point to the end of the current field.
\\[bibtex-complete] completes word fragment before point according to context.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
The command \\[bibtex-clean-entry] cleans the current entry, i.e. it removes OPT/ALT
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
from the names of all non-empty optional or alternative fields, checks that
no required fields are empty, and does some formatting dependent on the value
of `bibtex-entry-format'. Furthermore, it can automatically generate a key
for the BibTeX entry, see `bibtex-generate-autokey'.
Note: some functions in BibTeX mode depend on entries being in a special
format (all fields beginning on separate lines), so it is usually a bad
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
idea to remove `realign' from `bibtex-entry-format'.
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
BibTeX mode supports Imenu and hideshow minor mode (`hs-minor-mode').
----------------------------------------------------------
Entry to BibTeX mode calls the value of `bibtex-mode-hook'
if that value is non-nil.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
\\{bibtex-mode-map}"
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(interactive)
(kill-all-local-variables)
(use-local-map bibtex-mode-map)
(setq major-mode 'bibtex-mode)
(setq mode-name "BibTeX")
(set-syntax-table bibtex-mode-syntax-table)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(make-local-variable 'bibtex-buffer-last-parsed-tick)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
;; Install stealthy parse function if not already installed
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(unless bibtex-parse-idle-timer
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq bibtex-parse-idle-timer (run-with-idle-timer
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-parse-keys-timeout t
'bibtex-parse-buffers-stealthily)))
(set (make-local-variable 'paragraph-start) "[ \f\n\t]*$")
(set (make-local-variable 'comment-start) bibtex-comment-start)
(set (make-local-variable 'comment-start-skip)
(concat (regexp-quote bibtex-comment-start) "\\>[ \t]*"))
(set (make-local-variable 'comment-column) 0)
(set (make-local-variable 'defun-prompt-regexp) "^[ \t]*@[[:alnum:]]+[ \t]*")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(set (make-local-variable 'outline-regexp) "[ \t]*@")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(set (make-local-variable 'fill-paragraph-function) 'bibtex-fill-field)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(set (make-local-variable 'fill-prefix) (make-string (+ bibtex-entry-offset
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
bibtex-contline-indentation)
?\s))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(set (make-local-variable 'font-lock-defaults)
'(bibtex-font-lock-keywords
nil t ((?$ . "\"")
;; Mathematical expressions should be fontified as strings
(?\" . ".")
;; Quotes are field delimiters and quote-delimited
;; entries should be fontified in the same way as
;; brace-delimited ones
)
nil
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(font-lock-syntactic-keywords . bibtex-font-lock-syntactic-keywords)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(font-lock-extra-managed-props . (category))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(font-lock-mark-block-function
. (lambda ()
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(set-mark (bibtex-end-of-entry))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(bibtex-beginning-of-entry)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq imenu-generic-expression
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(list (list nil bibtex-entry-head bibtex-key-in-head))
imenu-case-fold-search t)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(make-local-variable 'choose-completion-string-functions)
;; XEmacs needs `easy-menu-add', Emacs does not care
(bibtex-autokey-names): Change number tag to integer. (bibtex-include-OPTkey): Add non-nil default :value for function, so that it can be selected. (bibtex-entry-format): Replace repeat with set. (bibtex-mode-hook): Change :type to 'hook. (bibtex-clean-entry-hook): Ditto. (bibtex-add-entry-hook): Ditto. (bibtex-autokey-before-presentation-hook): Change name to -> `bibtex-autokey-before-presentation-function' as it is not hook. (bibtex-autokey-get-namefield): Remove newlines unconditionally. (bibtex-autokey): Fixed prefix. (bibtex-user-optional-fields): Better `:type'. (bibtex-autokey-names): Better `:type' and doc-fix. (bibtex-mark-active): New function, taking care of Emacs variants. (bibtex-run-with-idle-timer): Ditto. (bibtex-mode-map): Change `[(control tab)]' to `[(meta tab)]'. (bibtex-autokey-get-yearfield): Changed to accept year when year field has field-delimiters. This is quick fix, there might be better solution. (bibtex-mode): Don't call idle timer with 0 seconds. (bibtex-mode): Call easy-menu-add. (bibtex-autokey-get-yearfield): Fixed problem with parsing the year field. (bibtex-comment-start): Font locking for comments added. (autokey-name-case-convert, autokey-titleword-case-convert): Replace autokey-preserve-case, adding flexibility to case conversion of author names and titlewords. (bibtex-autokey-get-titles): Non capitalized title words are used for key generation as well. (bibtex-member-of-regexp): Case is honoured for matches now. (bibtex-autokey-titleword-ignore): Added entries provide compatibility to former behaviour. (bibtex-autokey-titleword-ignore): Title words found in this list are always ignored (previously only at the beginning of the title). Replaces bibtex-autokey-titleword-first-ignore.
1998-02-16 05:42:08 +00:00
(easy-menu-add bibtex-edit-menu)
(easy-menu-add bibtex-entry-menu)
(run-mode-hooks 'bibtex-mode-hook))
(defun bibtex-field-list (entry-type)
"Return list of allowed fields for entry ENTRY-TYPE.
More specifically, the return value is a cons pair (REQUIRED . OPTIONAL),
where REQUIRED and OPTIONAL are lists of the required and optional field
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
names for ENTRY-TYPE according to `bibtex-entry-field-alist',
`bibtex-include-OPTkey', `bibtex-include-OPTcrossref',
and `bibtex-user-optional-fields'."
(let ((e (assoc-string entry-type bibtex-entry-field-alist t))
required optional)
(unless e
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(error "Fields for BibTeX entry type %s not defined" entry-type))
(if (and (member-ignore-case entry-type bibtex-include-OPTcrossref)
(nth 2 e))
(setq required (nth 0 (nth 2 e))
optional (nth 1 (nth 2 e)))
(setq required (nth 0 (nth 1 e))
optional (nth 1 (nth 1 e))))
(if bibtex-include-OPTkey
(push (list "key"
"Used for reference key creation if author and editor fields are missing"
(if (or (stringp bibtex-include-OPTkey)
(functionp bibtex-include-OPTkey))
bibtex-include-OPTkey))
optional))
(if (member-ignore-case entry-type bibtex-include-OPTcrossref)
(push '("crossref" "Reference key of the cross-referenced entry")
optional))
(setq optional (append optional bibtex-user-optional-fields))
(cons required optional)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-entry (entry-type)
"Insert a new BibTeX entry of type ENTRY-TYPE.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
After insertion call the value of `bibtex-add-entry-hook' if that value
is non-nil."
(interactive
(let ((completion-ignore-case t))
(list (completing-read "Entry Type: " bibtex-entry-field-alist
nil t nil 'bibtex-entry-type-history))))
(let ((key (if bibtex-maintain-sorted-entries
(bibtex-read-key (format "%s key: " entry-type))))
(field-list (bibtex-field-list entry-type)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(unless (bibtex-prepare-new-entry (list key nil entry-type))
(error "Entry with key `%s' already exists" key))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(indent-to-column bibtex-entry-offset)
(insert "@" entry-type (bibtex-entry-left-delimiter))
(if key (insert key))
(save-excursion
(mapc 'bibtex-make-field (car field-list))
(mapc 'bibtex-make-optional-field (cdr field-list))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(if bibtex-comma-after-last-field
(insert ","))
(insert "\n")
(indent-to-column bibtex-entry-offset)
(insert (bibtex-entry-right-delimiter) "\n\n"))
(bibtex-auto-fill-function): Adapted for use with changed autofill policy of emacs-19.30 (uses now fill-prefix instead of indent-line-function). (bibtex-indent-line-function): Removed (not used any more). (bibtex-make-field): Was broken when called non-interactively. (bibtex-make-field): Point is now placed on closing brace or quote (suggested by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-clean-entry): Comma after last field isn't deleted anymore (new standard in BibTeX 0.99 and 1.xx). (bibtex-enclosing-reference-maybe-empty-head): Works with entries with comma after last field. (bibtex-reference): Permits entries with comma after last field. (bibtex-font-lock-keywords): Enhanced to support new field-name characters (suggested by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-field-name): Now numbers (not as the first sign), dashes, and underscores are allowed (suggested by Martin Maechler <maechler@stat.math.ethz.ch> and Oren Patashnik <opbibtex@labrea.Stanford.EDU>). (bibtex-make-field): Was broken on lines containing non-parenthesized entries (reported by Karl Eichwalder <ke@ke.Central.DE>). (bibtex-validate-buffer): Changed so that preamble references are ignored (same as string entries) (reported by Martin Maechler <maechler@stat.math.ethz.ch>). (bibtex-enclosing-reference-maybe-empty-head): New function to be used in case reference head may be empty. (bibtex-clean-entry, bibtex-pop-previous, bibtex-pop-next): Uses now bibtex-enclosing-reference-maybe-empty-head. (bibtex-mode): Added support for font-lock mode. (bibtex-font-lock-keywords): New variable with font-lock keywords for BibTeX mode. (bibtex-make-optional-field): Not longer interactive (suggested by Karl Eichwalder <karl@pertron.central.de>). (bibtex-maintain-sorted-entries): Set to nil, since it requires more user attention and more restricted files to have this set to t. (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Made buffer local, since it may depend on the buffer which preferences to use. (bibtex-validate-buffer): Looking for correct sort order only when bibtex-maintain-sorted-entries is non-nil. Put a comment in the `KNOWN BUGS' section about the quote-inside-quotes problem. (whole file): Changed string `true' in some documentation strings to `non-nil' (e.g. `if variable has a true/non-nil value'). (bibtex-mode-map): Changed `move/edit' to `bibtex-edit'. (bibtex-sort-entries): Now works correctly with `@String' entries inside BibTeX files (i.e. after the occurence of other references). (bibtex-validate-buffer): Inserted code which looks if entries are balanced (a single non-escaped quote inside braces was not detected till now, but bibtex-sort-entries stumbles about it). (bibtex-entry): bibtex-move-outside-of-entry is only called when bibtex-maintain-sorted-entries is nil (otherwise bibtex-find-entry-location determines the correct location). (bibtex-find-entry-location): Now uses binary search. As before, it assumes that the buffer is sorted without duplicates (but as before it is only called when bibtex-maintain-sorted-entries is t). Ignores `@String' entries if told so via variable bibtex-sort-ignore-string-entries. (bibtex-clean-entry): Respect bibtex-maintain-sorted-entries when inserting autokey. (bibtex-validate-buffer): Searching whole buffer for duplicates and correct order is now done directly instead of calling bibtex-find-entry-location (since this is to be reprogrammed to use a binary search instead a sequential one). (bibtex-parse-keys): May now be called with an optional parameter which (if t) tells bibtex-parse-keys that it should abort if input is pending. (bibtex-mode): The instance of bibtex-parse-keys called in auto-save-mode-hook is now called with this new parameter set to t, so an auto-save caused by exceeding auto-save-interval is now aborted immediately if user is still typing. (bibtex-print-help-message, bibtex-clean-entry): Use now constant strings instead of custom ones. (bibtex-clean-entry): Changed the call of bibtex-enclosing-reference to a more specific call so entries without a key (here allowed) can be handled. (bibtex-reference-key): Cleared off parentheses (caused string entries enclosed by parentheses instead of braces to be not added to bibtex-completion-candidates). (bibtex-complete-string): Made it use bibtex-string. (bibtex-keys, bibtex-buffer-last-parsed-for-keys-tick): New buffer-local variables to make parsing of BibTeX buffer for reference keys (needed by TAB completion in minibuffer when entering key) more occasional. (bibtex-parse-keys): New function to parse for keys (functionality was partially included in bibtex-entry). (bibtex-entry): Changed to use bibtex-parse-keys. (bibtex-mode): Installs bibtex-parse-keys as an auto-save-mode-hook, so whole buffer is parsed at most when it is autosaved. (bibtex-clean-entry): Calls bibtex-parse-keys on the new entry, so bibtex-keys remains consistent for new entries that are finished by calling this function (most should). (bibtex-inside-field): Be independent on current setting of bibtex-field-right-delimiter (allows more intermixing between quotes and braces). (bibtex-make-field): Last change didn't make it work correctly when called non-interactively by bibtex-entry (fixed).
1995-12-13 20:26:13 +00:00
(bibtex-next-field t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(if (member-ignore-case entry-type bibtex-autofill-types)
(bibtex-autofill-entry))
(run-hooks 'bibtex-add-entry-hook)))
1992-07-16 21:47:34 +00:00
(defun bibtex-entry-update (&optional entry-type)
"Update an existing BibTeX entry.
In the BibTeX entry at point, make new fields for those items that may occur
according to `bibtex-field-list', but are not yet present.
Also, add field delimiters to numerical fields if they are not present.
If ENTRY-TYPE is non-nil, change first the entry type to ENTRY-TYPE.
When called interactively with a prefix arg, query for a value of ENTRY-TYPE."
(interactive
(list (if current-prefix-arg
(let ((completion-ignore-case t))
(completing-read "New entry type: " bibtex-entry-field-alist
nil t nil 'bibtex-entry-type-history)))))
(save-excursion
(bibtex-beginning-of-entry)
(when (looking-at bibtex-entry-maybe-empty-head)
(goto-char (match-end 0))
(if entry-type
(save-excursion
(replace-match (concat "@" entry-type) nil nil nil 1))
(setq entry-type (bibtex-type-in-head)))
(let* ((field-list (bibtex-field-list entry-type))
(required (copy-tree (car field-list)))
(optional (copy-tree (cdr field-list)))
bounds)
(while (setq bounds (bibtex-parse-field))
(let ((fname (bibtex-name-in-field bounds t))
(end (copy-marker (bibtex-end-of-field bounds) t)))
(setq required (delete (assoc-string fname required t) required)
optional (delete (assoc-string fname optional t) optional))
(when (string-match "\\`[0-9]+\\'"
(bibtex-text-in-field-bounds bounds))
(goto-char (bibtex-end-of-text-in-field bounds))
(insert (bibtex-field-right-delimiter))
(goto-char (bibtex-start-of-text-in-field bounds))
(insert (bibtex-field-left-delimiter)))
(goto-char end)))
(skip-chars-backward " \t\n")
(dolist (field required) (bibtex-make-field field))
(dolist (field optional) (bibtex-make-optional-field field))))))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(defun bibtex-parse-entry (&optional content)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Parse entry at point, return an alist.
The alist elements have the form (FIELD . TEXT), where FIELD can also be
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
the special strings \"=type=\" and \"=key=\". For the FIELD \"=key=\"
TEXT may be nil. Remove \"OPT\" and \"ALT\" from FIELD.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
Move point to the end of the last field.
If optional arg CONTENT is non-nil extract content of text fields."
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let (alist bounds)
(when (looking-at bibtex-entry-maybe-empty-head)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(push (cons "=type=" (bibtex-type-in-head)) alist)
(push (cons "=key=" (bibtex-key-in-head)) alist)
(goto-char (match-end 0))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(while (setq bounds (bibtex-parse-field))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(push (cons (bibtex-name-in-field bounds t)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(bibtex-text-in-field-bounds bounds content))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
alist)
(goto-char (bibtex-end-of-field bounds))))
alist))
(defun bibtex-autofill-entry ()
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Try to fill fields of current BibTeX entry based on neighboring entries.
The current entry must have a key. Determine the neighboring entry
\(previouse or next\) whose key is more similar to the key of the current
entry. For all empty fields of the current entry insert the corresponding
field contents of the neighboring entry. Finally try to update the text
based on the difference between the keys of the neighboring and the current
entry (for example, the year parts of the keys)."
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(interactive)
(bibtex-beginning-of-entry)
(when (looking-at bibtex-entry-head)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((type (bibtex-type-in-head))
(key (bibtex-key-in-head))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(key-end (match-end bibtex-key-in-head))
(case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-sort-ignore-string-entries t)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
tmp other-key other bounds)
;; The fields we want to change start right after the key.
(goto-char key-end)
;; First see whether to use the previous or the next entry
;; for "inspiration".
(save-excursion
(goto-char (1- (match-beginning 0)))
(bibtex-beginning-of-entry)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (and (looking-at bibtex-entry-head)
(bibtex-string= type (bibtex-type-in-head))
;; In case we found ourselves :-(
(not (equal key (setq tmp (bibtex-key-in-head)))))
(setq other-key tmp
other (point))))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(save-excursion
(bibtex-end-of-entry)
(bibtex-skip-to-valid-entry)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (and (looking-at bibtex-entry-head)
(bibtex-string= type (bibtex-type-in-head))
;; In case we found ourselves :-(
(not (equal key (setq tmp (bibtex-key-in-head))))
(or (not other-key)
;; Check which is the best match.
(< (length (try-completion "" (list key other-key)))
(length (try-completion "" (list key tmp))))))
(setq other-key tmp
other (point))))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
;; Then fill the new entry's fields with the chosen other entry.
(when other
(setq other (save-excursion (goto-char other) (bibtex-parse-entry)))
(setq key-end (point)) ;In case parse-entry changed the buffer.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(while (setq bounds (bibtex-parse-field))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((text (assoc-string (bibtex-name-in-field bounds t)
other t)))
(if (not (and text
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(equal "" (bibtex-text-in-field-bounds bounds t))))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(goto-char (bibtex-end-of-field bounds))
(goto-char (bibtex-start-of-text-in-field bounds))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(delete-region (point) (bibtex-end-of-text-in-field bounds))
(insert (cdr text)))))
;; Finally try to update the text based on the difference between
;; the two keys.
(let* ((prefix (try-completion "" (list key other-key)))
;; If the keys are foo91 and foo92, don't replace 1 for 2
;; but 91 for 92 instead.
(_ (if (string-match "[0-9]+\\'" prefix)
(setq prefix (substring prefix 0 (match-beginning 0)))))
(suffix (substring key (length prefix)))
(other-suffix (substring other-key (length prefix))))
(while (re-search-backward (regexp-quote other-suffix) key-end 'move)
(replace-match suffix)))))))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-print-help-message (&optional field comma)
"Print helpful information about current FIELD in current BibTeX entry.
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls."
(interactive (list nil t))
(unless field (setq field (car (bibtex-find-text-internal nil nil comma))))
(if (string-match "@" field)
(cond ((bibtex-string= field "@string")
(message "String definition"))
((bibtex-string= field "@preamble")
(message "Preamble definition"))
(t (message "Entry key")))
(let* ((case-fold-search t)
(type (save-excursion
(bibtex-beginning-of-entry)
(looking-at bibtex-entry-maybe-empty-head)
(bibtex-type-in-head)))
(field-list (bibtex-field-list type))
(comment (assoc-string field (append (car field-list)
(cdr field-list)) t)))
(if comment (message "%s" (nth 1 comment))
(message "No comment available")))))
1992-02-22 21:47:46 +00:00
(defun bibtex-make-field (field &optional move interactive nodelim)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"Make a field named FIELD in current BibTeX entry.
FIELD is either a string or a list of the form
\(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in
`bibtex-entry-field-alist'.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
If MOVE is non-nil, move point past the present field before making
the new field. If INTERACTIVE is non-nil, move point to the end of
the new field. Otherwise move point past the new field.
MOVE and INTERACTIVE are t when called interactively.
INIT is surrounded by field delimiters, unless NODELIM is non-nil."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive
(list (let ((completion-ignore-case t)
(field-list (bibtex-field-list
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(save-excursion
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-beginning-of-entry)
(looking-at bibtex-any-entry-maybe-empty-head)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-type-in-head)))))
(completing-read "BibTeX field name: "
(append (car field-list) (cdr field-list))
nil nil nil bibtex-field-history))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
t t))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(unless (consp field)
(setq field (list field)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(when move
(bibtex-find-text)
(if (looking-at "[}\"]")
(forward-char)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(insert ",\n")
(indent-to-column (+ bibtex-entry-offset bibtex-field-indentation))
(if (nth 3 field) (insert "ALT"))
(insert (car field) " ")
(if bibtex-align-at-equal-sign
(indent-to-column (+ bibtex-entry-offset
(- bibtex-text-indentation 2))))
(insert "= ")
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless bibtex-align-at-equal-sign
(indent-to-column (+ bibtex-entry-offset
bibtex-text-indentation)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let ((init (nth 2 field)))
(if (not init) (setq init "")
(if (functionp init) (setq init (funcall init)))
(unless (stringp init) (error "`%s' is not a string" init)))
;; NODELIM is required by `bibtex-insert-kill'
(if nodelim (insert init)
(insert (bibtex-field-left-delimiter) init
(bibtex-field-right-delimiter))))
2004-11-01 08:13:50 +00:00
(when interactive
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; (bibtex-find-text nil nil bibtex-help-message)
(if (memq (preceding-char) '(?} ?\")) (forward-char -1))
(if bibtex-help-message (bibtex-print-help-message (car field)))))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-beginning-of-entry ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Move to beginning of BibTeX entry (beginning of line).
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
If inside an entry, move to the beginning of it, otherwise move to the
beginning of the previous entry. If point is ahead of all BibTeX entries
move point to the beginning of buffer. Return the new location of point."
1991-05-09 21:50:45 +00:00
(interactive)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(skip-chars-forward " \t")
(if (looking-at "@")
(forward-char))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(re-search-backward "^[ \t]*@" nil 'move)
(point))
1992-07-16 21:47:34 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-end-of-entry ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Move to end of BibTeX entry (past the closing brace).
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
If inside an entry, move to the end of it, otherwise move to the end
of the previous entry. Do not move if ahead of first entry.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Return the new location of point."
1991-05-09 21:50:45 +00:00
(interactive)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(pnt (point))
(_ (bibtex-beginning-of-entry))
(bounds (bibtex-valid-entry t)))
(cond (bounds (goto-char (cdr bounds))) ; regular entry
;; @String or @Preamble
((setq bounds (or (bibtex-parse-string t) (bibtex-parse-preamble)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(goto-char (bibtex-end-of-string bounds)))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
((looking-at bibtex-any-valid-entry-type)
;; Parsing of entry failed
(error "Syntactically incorrect BibTeX entry starts here"))
(t (if (called-interactively-p 'interactive)
(message "Not on a known BibTeX entry."))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char pnt)))
(point)))
(defun bibtex-goto-line (arg)
"Goto line ARG, counting from beginning of (narrowed) buffer."
;; code adapted from `goto-line'
(goto-char (point-min))
(if (eq selective-display t)
(re-search-forward "[\n\C-m]" nil 'end (1- arg))
(forward-line (1- arg))))
(defun bibtex-reposition-window ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Make the current BibTeX entry visible.
If entry is smaller than `window-body-height', entry is centered in window.
Otherwise display the beginning of entry."
(interactive)
(let ((pnt (point))
(beg (line-number-at-pos (bibtex-beginning-of-entry)))
(end (line-number-at-pos (bibtex-end-of-entry))))
(if (> (window-body-height) (- end beg))
;; entry fits in current window
(progn
(bibtex-goto-line (/ (+ 1 beg end) 2))
(recenter)
(goto-char pnt))
;; entry too large for current window
(bibtex-goto-line beg)
(recenter 0)
(if (> (1+ (- (line-number-at-pos pnt) beg))
(window-body-height))
(bibtex-goto-line beg)
(goto-char pnt)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-mark-entry ()
"Put mark at beginning, point at end of current BibTeX entry."
(interactive)
(push-mark (bibtex-beginning-of-entry))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-end-of-entry))
(defun bibtex-count-entries (&optional count-string-entries)
"Count number of entries in current buffer or region.
With prefix argument COUNT-STRING-ENTRIES count all entries,
otherwise count all entries except @String entries.
If mark is active count entries in region, if not in whole buffer."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "P")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((number 0)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(bibtex-sort-ignore-string-entries (not count-string-entries)))
(save-restriction
(if mark-active (narrow-to-region (region-beginning) (region-end)))
(bibtex-map-entries (lambda (key beg end) (setq number (1+ number)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(message "%s contains %d entries."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if mark-active "Region" "Buffer")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
number)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-ispell-entry ()
"Check BibTeX entry for spelling errors."
1991-05-09 21:50:45 +00:00
(interactive)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(ispell-region (save-excursion (bibtex-beginning-of-entry))
(save-excursion (bibtex-end-of-entry))))
1991-05-09 21:50:45 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-ispell-abstract ()
"Check abstract of BibTeX entry for spelling errors."
1991-05-09 21:50:45 +00:00
(interactive)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let ((bounds (save-excursion
(bibtex-beginning-of-entry)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-search-forward-field "abstract" t))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(if bounds
(ispell-region (bibtex-start-of-text-in-field bounds)
(bibtex-end-of-text-in-field bounds))
(error "No abstract in entry"))))
1991-05-09 21:50:45 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-narrow-to-entry ()
"Narrow buffer to current BibTeX entry."
1991-05-09 21:50:45 +00:00
(interactive)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(save-excursion
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(widen)
(narrow-to-region (bibtex-beginning-of-entry)
(bibtex-end-of-entry))))
(defun bibtex-entry-index ()
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Return index of BibTeX entry head at or past position of point.
The index is a list (KEY CROSSREF-KEY ENTRY-TYPE) that is used for sorting
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
the entries of the BibTeX buffer. CROSSREF-KEY is nil unless the value
of `bibtex-maintain-sorted-entries' is `crossref'. Move point to the end
of the head of the entry found. Return nil if no entry found."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t))
(if (re-search-forward bibtex-entry-maybe-empty-head nil t)
(let ((key (bibtex-key-in-head))
;; all entry types should be downcase (for ease of comparison)
(entry-type (downcase (bibtex-type-in-head))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; Don't search CROSSREF-KEY if we don't need it.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (eq bibtex-maintain-sorted-entries 'crossref)
(let ((bounds (bibtex-search-forward-field
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
"\\(OPT\\)?crossref" t)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(list key
(if bounds (bibtex-text-in-field-bounds bounds t))
entry-type))
(list key nil entry-type))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-init-sort-entry-class-alist ()
"Initialize `bibtex-sort-entry-class-alist' (buffer-local)."
(unless (local-variable-p 'bibtex-sort-entry-class-alist)
(set (make-local-variable 'bibtex-sort-entry-class-alist)
(let ((i -1) alist)
(dolist (class bibtex-sort-entry-class alist)
(setq i (1+ i))
(dolist (entry class)
;; All entry types should be downcase (for ease of comparison).
(push (cons (if (stringp entry) (downcase entry) entry) i)
alist)))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-lessp (index1 index2)
"Predicate for sorting BibTeX entries with indices INDEX1 and INDEX2.
Each index is a list (KEY CROSSREF-KEY ENTRY-TYPE).
The predicate depends on the variable `bibtex-maintain-sorted-entries'.
If its value is nil use plain sorting."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(cond ((not index1) (not index2)) ; indices can be nil
((not index2) nil)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((eq bibtex-maintain-sorted-entries 'crossref)
;; CROSSREF-KEY may be nil or it can point to an entry
;; in another BibTeX file. In both cases we ignore CROSSREF-KEY.
(if (and (nth 1 index1)
(cdr (assoc-string (nth 1 index1) bibtex-reference-keys)))
(if (and (nth 1 index2)
(cdr (assoc-string (nth 1 index2) bibtex-reference-keys)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(or (string-lessp (nth 1 index1) (nth 1 index2))
(and (string-equal (nth 1 index1) (nth 1 index2))
(string-lessp (nth 0 index1) (nth 0 index2))))
(not (string-lessp (nth 0 index2) (nth 1 index1))))
(if (and (nth 1 index2)
(cdr (assoc-string (nth 1 index2) bibtex-reference-keys)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(string-lessp (nth 0 index1) (nth 1 index2))
(string-lessp (nth 0 index1) (nth 0 index2)))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((eq bibtex-maintain-sorted-entries 'entry-class)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let ((n1 (cdr (or (assoc (nth 2 index1) bibtex-sort-entry-class-alist)
(assoc 'catch-all bibtex-sort-entry-class-alist)
'(nil . 1000)))) ; if there is nothing else
(n2 (cdr (or (assoc (nth 2 index2) bibtex-sort-entry-class-alist)
(assoc 'catch-all bibtex-sort-entry-class-alist)
'(nil . 1000))))) ; if there is nothing else
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(or (< n1 n2)
(and (= n1 n2)
(string-lessp (car index1) (car index2))))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(t ; (eq bibtex-maintain-sorted-entries 'plain)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(string-lessp (car index1) (car index2)))))
1991-05-09 21:50:45 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-sort-buffer ()
"Sort BibTeX buffer alphabetically by key.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
The predicate for sorting is defined via `bibtex-maintain-sorted-entries'.
If its value is nil use plain sorting. Text outside of BibTeX entries is not
affected. If `bibtex-sort-ignore-string-entries' is non-nil, @String entries
are ignored."
1991-05-09 21:50:45 +00:00
(interactive)
(bibtex-beginning-of-first-entry) ; Needed by `sort-subr'
(bibtex-init-sort-entry-class-alist) ; Needed by `bibtex-lessp'.
(if (and (eq bibtex-maintain-sorted-entries 'crossref)
(functionp bibtex-reference-keys))
(bibtex-parse-keys)) ; Needed by `bibtex-lessp'.
(sort-subr nil
'bibtex-skip-to-valid-entry ; NEXTREC function
'bibtex-end-of-entry ; ENDREC function
'bibtex-entry-index ; STARTKEY function
nil ; ENDKEY function
'bibtex-lessp)) ; PREDICATE
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-search-crossref (crossref-key &optional pnt split noerror)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Move point to the beginning of BibTeX entry CROSSREF-KEY.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
If `bibtex-files' is non-nil, search all these files.
Otherwise the search is limited to the current buffer.
Return position of entry if CROSSREF-KEY is found or nil otherwise.
If CROSSREF-KEY is in the same buffer like current entry but before it
an error is signaled. If NOERRER is non-nil this error is suppressed.
Optional arg PNT is the position of the referencing entry. It defaults
to position of point. If optional arg SPLIT is non-nil, split window
so that both the referencing and the crossrefed entry are displayed.
If called interactively, CROSSREF-KEY defaults to either the crossref key
of current entry or a key matched by `bibtex-cite-matcher-alist',
whatever is nearer to the position of point. SPLIT is t. NOERROR is nil
for a crossref key, t otherwise."
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(interactive
(save-excursion
(let* ((pnt (point))
(_ (bibtex-beginning-of-entry))
(end (cdr (bibtex-valid-entry t)))
(_ (unless end (error "Not inside valid entry")))
(beg (match-end 0)) ; set by `bibtex-valid-entry'
(bounds (bibtex-search-forward-field "\\(OPT\\)?crossref" end))
case-fold-search best temp crossref-key)
(if bounds
(setq crossref-key (bibtex-text-in-field-bounds bounds t)
best (cons (bibtex-dist pnt (bibtex-end-of-field bounds)
(bibtex-start-of-field bounds))
crossref-key)))
(dolist (matcher bibtex-cite-matcher-alist)
(goto-char beg)
(while (re-search-forward (car matcher) end t)
(setq temp (bibtex-dist pnt (match-end (cdr matcher))
(match-beginning (cdr matcher))))
;; Accept the key closest to the position of point.
(if (or (not best) (< temp (car best)))
(setq best (cons temp (match-string-no-properties
(cdr matcher)))))))
(goto-char pnt)
(setq temp (bibtex-read-key "Find crossref key: " (cdr best) t))
(list temp (point) t (not (and crossref-key
(string= temp crossref-key)))))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(let (buffer pos eqb)
(save-excursion
(setq pos (bibtex-search-entry crossref-key t)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
buffer (current-buffer)))
(setq eqb (eq buffer (current-buffer)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(cond ((not pos)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if split (message "Crossref key `%s' not found" crossref-key)))
(split ; called (quasi) interactively
(unless pnt (setq pnt (point)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(goto-char pnt)
(if (and eqb (= pos (save-excursion (bibtex-beginning-of-entry))))
(message "Key `%s' is current entry" crossref-key)
(if eqb (select-window (split-window))
(pop-to-buffer buffer))
(goto-char pos)
(bibtex-reposition-window)
(beginning-of-line)
(if (and eqb (> pnt pos) (not noerror))
(error "The referencing entry must precede the crossrefed entry!"))))
;; `bibtex-search-crossref' is called noninteractively during
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; clean-up of an entry. Then it is not possible to check
;; whether the current entry and the crossrefed entry have
;; the correct sorting order.
(eqb (goto-char pos))
(t (set-buffer buffer) (goto-char pos)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
pos))
;; backward compatibility
(defalias 'bibtex-find-crossref 'bibtex-search-crossref)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-dist (pos beg end)
"Return distance between POS and region delimited by BEG and END."
(cond ((and (<= beg pos) (<= pos end)) 0)
((< pos beg) (- beg pos))
(t (- pos end))))
;;;###autoload
(defun bibtex-search-entry (key &optional global start display)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Move point to the beginning of BibTeX entry named KEY.
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
Return position of entry if KEY is found or nil if not found.
With GLOBAL non-nil, search KEY in `bibtex-files'. Otherwise the search
is limited to the current buffer. Optional arg START is buffer position
where the search starts. If it is nil, start search at beginning of buffer.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
If DISPLAY is non-nil, display the buffer containing KEY.
Otherwise, use `set-buffer'.
When called interactively, GLOBAL is t if there is a prefix arg or the current
mode is not `bibtex-mode', START is nil, and DISPLAY is t."
(interactive
(let ((global (or current-prefix-arg (not (eq major-mode 'bibtex-mode)))))
(list (bibtex-read-key "Find key: " nil global) global nil t)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (and global bibtex-files)
(let ((buffer-list (bibtex-initialize t))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
buffer found)
(while (and (not found)
(setq buffer (pop buffer-list)))
(with-current-buffer buffer
(if (cdr (assoc-string key bibtex-reference-keys))
;; `bibtex-search-entry' moves point if key found
(setq found (bibtex-search-entry key)))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(cond ((and found display)
(let ((same-window-buffer-names
(cons (buffer-name buffer) same-window-buffer-names)))
(pop-to-buffer buffer)
(bibtex-reposition-window)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(found (set-buffer buffer))
(display (message "Key `%s' not found" key)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
found)
(let* ((case-fold-search t)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(pnt (save-excursion
(goto-char (or start (point-min)))
(if (re-search-forward (concat "^[ \t]*\\("
bibtex-entry-type
"\\)[ \t]*[({][ \t\n]*\\("
(regexp-quote key)
"\\)[ \t\n]*[,=]")
nil t)
(match-beginning 0)))))
(cond (pnt
(goto-char pnt)
(if display (bibtex-reposition-window)))
(display (message "Key `%s' not found" key)))
pnt)))
;; backward compatibility
(defalias 'bibtex-find-entry 'bibtex-search-entry)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-prepare-new-entry (index)
"Prepare a new BibTeX entry with index INDEX.
INDEX is a list (KEY CROSSREF-KEY ENTRY-TYPE).
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
Move point where the entry KEY should be placed.
If `bibtex-maintain-sorted-entries' is non-nil, perform a binary
search to look for place for KEY. This requires that buffer is sorted,
see `bibtex-validate'.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
Return t if preparation was successful or nil if entry KEY already exists."
(bibtex-init-sort-entry-class-alist) ; Needed by `bibtex-lessp'.
(if (and (eq bibtex-maintain-sorted-entries 'crossref)
(functionp bibtex-reference-keys))
(bibtex-parse-keys)) ; Needed by `bibtex-lessp'.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((key (nth 0 index))
key-exist)
(cond ((or (null key)
(and (stringp key)
(string-equal key ""))
(and (not (setq key-exist (bibtex-search-entry key)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(not bibtex-maintain-sorted-entries)))
(bibtex-move-outside-of-entry))
;; if key-exist is non-nil due to the previous cond clause
;; then point will be at beginning of entry named key.
(key-exist)
(t ; `bibtex-maintain-sorted-entries' is non-nil
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let* ((case-fold-search t)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(left (save-excursion (bibtex-beginning-of-first-entry)))
(bounds (save-excursion (goto-char (point-max))
(bibtex-skip-to-valid-entry t)))
(right (if bounds (cdr bounds) (point-min)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(found (if (>= left right) left))
actual-index new)
(save-excursion
;; Binary search
(while (not found)
(goto-char (/ (+ left right) 2))
(bibtex-skip-to-valid-entry t)
(setq actual-index (bibtex-entry-index))
(cond ((bibtex-lessp index actual-index)
(setq new (bibtex-beginning-of-entry))
(if (equal right new)
(setq found right)
(setq right new)))
(t
(bibtex-end-of-entry)
(bibtex-skip-to-valid-entry)
(setq new (point))
(if (equal left new)
(setq found right)
(setq left new))))))
(goto-char found)
(bibtex-beginning-of-entry)
(setq actual-index (save-excursion (bibtex-entry-index)))
(when (or (not actual-index)
(bibtex-lessp actual-index index))
;; buffer contains no valid entries or
;; greater than last entry --> append
(bibtex-end-of-entry)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless (bobp) (newline (forward-line 2)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(beginning-of-line)))))
(unless key-exist t)))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-validate (&optional test-thoroughly)
"Validate if buffer or region is syntactically correct.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Check also for duplicate keys and correct sort order provided
`bibtex-maintain-sorted-entries' is non-nil.
With optional argument TEST-THOROUGHLY non-nil check also for
the absence of required fields and for questionable month fields.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
If mark is active, validate current region, if not the whole buffer.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Only check known entry types, so you can put comments outside of entries.
Return t if test was successful, nil otherwise."
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
(interactive "P")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let* ((case-fold-search t)
error-list syntax-error)
(save-excursion
(save-restriction
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if mark-active (narrow-to-region (region-beginning) (region-end)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; Check syntactical structure of entries
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(goto-char (point-min))
(bibtex-progress-message "Checking syntactical structure")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(let (bounds end)
(while (setq end (re-search-forward "^[ \t]*@" nil t))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-progress-message)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char (match-beginning 0))
(cond ((setq bounds (bibtex-valid-entry))
(goto-char (cdr bounds)))
((setq bounds (or (bibtex-parse-string)
(bibtex-parse-preamble)))
(goto-char (bibtex-end-of-string bounds)))
((looking-at bibtex-any-valid-entry-type)
(push (cons (bibtex-current-line)
"Syntax error (check esp. commas, braces, and quotes)")
error-list)
(goto-char (match-end 0)))
(t (goto-char end)))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-progress-message 'done)
(if error-list
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; Continue only if there were no syntax errors.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(setq syntax-error t)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
;; Check for duplicate keys and correct sort order
(bibtex-init-sort-entry-class-alist) ; Needed by `bibtex-lessp'.
(bibtex-parse-keys) ; Possibly needed by `bibtex-lessp'.
; Always needed by subsequent global key check.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let (previous current key-list)
(bibtex-progress-message "Checking for duplicate keys")
(bibtex-map-entries
(lambda (key beg end)
(bibtex-progress-message)
(setq current (bibtex-entry-index))
(cond ((not previous))
((member key key-list)
(push (cons (bibtex-current-line)
(format "Duplicate key `%s'" key))
error-list))
((and bibtex-maintain-sorted-entries
(not (bibtex-lessp previous current)))
(push (cons (bibtex-current-line)
"Entries out of order")
error-list)))
(push key key-list)
(setq previous current)))
(bibtex-progress-message 'done))
;; Check for duplicate keys in `bibtex-files'.
;; `bibtex-validate' only compares keys in current buffer with keys
;; in `bibtex-files'. `bibtex-validate-globally' compares keys for
;; each file in `bibtex-files' with keys of all other files in
;; `bibtex-files'.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; We don't want to be fooled by outdated `bibtex-reference-keys'.
(dolist (buffer (bibtex-initialize nil t))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(dolist (key (with-current-buffer buffer bibtex-reference-keys))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(when (and (cdr key)
(cdr (assoc-string (car key) bibtex-reference-keys)))
(bibtex-search-entry (car key))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(push (cons (bibtex-current-line)
(format "Duplicate key `%s' in %s" (car key)
(abbreviate-file-name (buffer-file-name buffer))))
error-list))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(when test-thoroughly
(bibtex-progress-message
"Checking required fields and month fields")
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((bibtex-sort-ignore-string-entries t))
(bibtex-map-entries
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(lambda (key beg end)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-progress-message)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(let* ((entry-list (assoc-string (bibtex-type-in-head)
bibtex-entry-field-alist t))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(req (copy-sequence (elt (elt entry-list 1) 0)))
(creq (copy-sequence (elt (elt entry-list 2) 0)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
crossref-there bounds alt-there field)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-beginning-first-field beg)
(while (setq bounds (bibtex-parse-field))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((field-name (bibtex-name-in-field bounds)))
(if (and (bibtex-string= field-name "month")
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; Check only abbreviated month fields.
(let ((month (bibtex-text-in-field-bounds bounds)))
(not (or (string-match "\\`[\"{].+[\"}]\\'" month)
(assoc-string
month
bibtex-predefined-month-strings t)))))
(push (cons (bibtex-current-line)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Questionable month field")
error-list))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(setq field (assoc-string field-name req t)
req (delete field req)
creq (delete (assoc-string field-name creq t) creq))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if (nth 3 field)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if alt-there
(push (cons (bibtex-current-line)
"More than one non-empty alternative")
error-list)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq alt-there t)))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(if (bibtex-string= field-name "crossref")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(setq crossref-there t)))
(goto-char (bibtex-end-of-field bounds)))
(if crossref-there (setq req creq))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let (alt)
(dolist (field req)
(if (nth 3 field)
(push (car field) alt)
(push (cons (save-excursion (goto-char beg)
(bibtex-current-line))
(format "Required field `%s' missing"
(car field)))
error-list)))
;; The following fails if there are more than two
;; alternatives in a BibTeX entry, which isn't
;; the case momentarily.
(if (cdr alt)
(push (cons (save-excursion (goto-char beg)
(bibtex-current-line))
(format "Alternative fields `%s'/`%s' missing"
(car alt) (cadr alt)))
error-list)))))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-progress-message 'done)))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(if error-list
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let ((file (file-name-nondirectory (buffer-file-name)))
(dir default-directory)
(err-buf "*BibTeX validation errors*"))
(setq error-list (sort error-list 'car-less-than-car))
(with-current-buffer (get-buffer-create err-buf)
(setq default-directory dir)
(unless (eq major-mode 'compilation-mode) (compilation-mode))
(toggle-read-only -1)
(delete-region (point-min) (point-max))
(insert "BibTeX mode command `bibtex-validate'\n"
(if syntax-error
"Maybe undetected errors due to syntax errors. Correct and validate again.\n"
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"\n"))
(dolist (err error-list)
(insert (format "%s:%d: %s\n" file (car err) (cdr err))))
(set-buffer-modified-p nil)
(toggle-read-only 1)
(goto-char (point-min))
(forward-line 2)) ; first error message
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(display-buffer err-buf)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
nil) ; return `nil' (i.e., buffer is invalid)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(message "%s is syntactically correct"
(if mark-active "Region" "Buffer"))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
t))) ; return `t' (i.e., buffer is valid)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(defun bibtex-validate-globally (&optional strings)
"Check for duplicate keys in `bibtex-files'.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
With optional prefix arg STRINGS, check for duplicate strings, too.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Return t if test was successful, nil otherwise."
(interactive "P")
(let ((buffer-list (bibtex-initialize t))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
buffer-key-list current-buf current-keys error-list)
;; Check for duplicate keys within BibTeX buffer
(dolist (buffer buffer-list)
* textmodes/two-column.el (2C-split): * textmodes/texnfo-upd.el (texinfo-multi-file-included-list): * textmodes/tex-mode.el (tex-set-buffer-directory): * textmodes/spell.el (spell-region, spell-string): * textmodes/reftex.el (reftex-erase-buffer): (reftex-get-file-buffer-force, reftex-kill-temporary-buffers): * textmodes/reftex-toc.el (reftex-toc-promote-action): * textmodes/reftex-sel.el (reftex-get-offset, reftex-insert-docstruct) (reftex-select-item): * textmodes/reftex-ref.el (reftex-label-info-update) (reftex-offer-label-menu): * textmodes/reftex-index.el (reftex-index-change-entry) (reftex-index-phrases-info): * textmodes/reftex-global.el (reftex-create-tags-file) (reftex-save-all-document-buffers, reftex-ensure-write-access): * textmodes/reftex-dcr.el (reftex-echo-ref, reftex-echo-cite) (reftex-view-crossref-from-bibtex): * textmodes/reftex-cite.el (reftex-bibtex-selection-callback) (reftex-extract-bib-entries-from-thebibliography) (reftex-all-used-citation-keys, reftex-create-bibtex-file): * textmodes/refbib.el (r2b-capitalize-title): (r2b-convert-buffer, r2b-help): * textmodes/page-ext.el (pages-directory) (pages-directory-goto-with-mouse): * textmodes/bibtex.el (bibtex-validate-globally): * textmodes/bib-mode.el (bib-capitalize-title): * textmodes/artist.el (artist-clear-buffer, artist-system): * progmodes/xscheme.el (global-set-scheme-interaction-buffer): (local-set-scheme-interaction-buffer, xscheme-process-filter) (verify-xscheme-buffer, xscheme-enter-interaction-mode) (xscheme-enter-debugger-mode, xscheme-debugger-mode-p) (xscheme-send-control-g-interrupt, xscheme-start-process) (xscheme-process-sentinel, xscheme-cd): * progmodes/verilog-mode.el (verilog-read-always-signals) (verilog-set-define, verilog-getopt-file) (verilog-module-inside-filename-p): * progmodes/sh-script.el: * progmodes/python.el (python-pdbtrack-get-source-buffer) (python-pdbtrack-grub-for-buffer, python-execute-file): * progmodes/octave-inf.el (inferior-octave): * progmodes/idlwave.el (idlwave-scan-user-lib-files) (idlwave-shell-compile-helper-routines, idlwave-set-local) (idlwave-display-completion-list-xemacs, idlwave-list-abbrevs) (idlwave-display-completion-list-emacs, idlwave-list-load-path-shadows) (idlwave-completion-fontify-classes, idlwave-display-calling-sequence): * progmodes/idlw-shell.el (idlwave-shell-examine-display-clear) (idlwave-shell-filter, idlwave-shell-examine-highlight) (idlwave-shell-sentinel, idlwave-shell-filter-directory) (idlwave-shell-display-line, idlwave-shell-set-bp-in-module) (idlwave-shell-examine-display, idlwave-shell-run-region) (idlwave-shell-filter-bp, idlwave-shell-save-and-action) (idlwave-shell-sources-filter, idlwave-shell-goto-next-error): * progmodes/idlw-help.el (idlwave-help-get-special-help) (idlwave-help-get-help-buffer): * progmodes/gud.el (gud-basic-call, gud-find-class) (gud-tooltip-activate-mouse-motions-if-enabled): * progmodes/gdb-mi.el (gdb-mouse-toggle-breakpoint-fringe): * progmodes/ebrowse.el (ebrowse-member-table, ebrowse-save-tree-as) (ebrowse-view-exit-fn, ebrowse-tags-list-members-in-file) (ebrowse-tags-next-file): * progmodes/ebnf2ps.el (ebnf-generate-eps, ebnf-generate-eps) (ebnf-eps-production-list, ebnf-begin-file, ebnf-log) (ebnf-eps-finish-and-write): * progmodes/cpp.el (cpp-edit-save): * progmodes/cperl-mode.el (cperl-pod-to-manpage): * progmodes/cc-defs.el (c-emacs-features): * progmodes/antlr-mode.el (antlr-invalidate-context-cache) (antlr-directory-dependencies): * progmodes/ada-xref.el (ada-gnat-parse-gpr, ada-get-ali-file-name) (ada-run-application, ada-find-in-src-path, ada-goto-parent) (ada-find-any-references, ada-make-filename-from-adaname) (ada-make-body-gnatstub): * obsolete/rnews.el (news-list-news-groups): * obsolete/resume.el (resume-suspend-hook,resume-write-buffer-to-file): * obsolete/iso-acc.el (iso-acc-minibuf-setup): * net/rcirc.el (rcirc-debug): * net/newst-treeview.el (newsticker--treeview-list-add-item) (newsticker--treeview-list-clear, newsticker-treeview-browse-url) (newsticker--treeview-list-update-faces, newsticker-treeview-save) (newsticker--treeview-item-show-text, newsticker--treeview-item-show) (newsticker--treeview-tree-update-tag,newsticker--treeview-buffer-init) (newsticker-treeview-show-item, newsticker--treeview-unfold-node) (newsticker--treeview-list-clear-highlight) (newsticker--treeview-list-update-highlight) (newsticker--treeview-list-highlight-start) (newsticker--treeview-tree-update-highlight) (newsticker--treeview-get-selected-item) (newsticker-treeview-mark-list-items-old) (newsticker--treeview-set-current-node): * net/newst-plainview.el (newsticker--buffer-set-uptodate): * net/newst-backend.el (newsticker--get-news-by-funcall) (newsticker--get-news-by-wget, newsticker--image-get) (newsticker--image-sentinel): * net/mairix.el (mairix-rmail-fetch-field, mairix-gnus-fetch-field): * net/eudcb-ph.el (eudc-ph-do-request, eudc-ph-open-session): (eudc-ph-close-session): * net/eudc.el (eudc-save-options): * language/thai-word.el (thai-update-word-table): * language/japan-util.el (japanese-string-conversion): * international/titdic-cnv.el (tsang-quick-converter) (ziranma-converter, ctlau-converter): * international/mule-cmds.el (describe-language-environment): * international/ja-dic-cnv.el (skkdic-convert-okuri-ari) (skkdic-convert-postfix, skkdic-convert-prefix): (skkdic-convert-okuri-nasi, skkdic-convert): * emacs-lisp/re-builder.el (reb-update-overlays): * emacs-lisp/pp.el (pp-to-string, pp-display-expression): * emacs-lisp/gulp.el (gulp-send-requests): * emacs-lisp/find-gc.el (trace-call-tree): * emacs-lisp/eieio-opt.el (eieio-browse, eieio-describe-class) (eieio-describe-generic): * emacs-lisp/eieio-base.el (eieio-persistent-read): * emacs-lisp/edebug.el (edebug-outside-excursion): * emacs-lisp/debug.el (debugger-make-xrefs): * emacs-lisp/cust-print.el (custom-prin1-to-string): * emacs-lisp/chart.el (chart-new-buffer): * emacs-lisp/authors.el (authors-scan-el, authors-scan-change-log): Use with-current-buffer. * textmodes/artist.el (artist-system): Don't call copy-sequence on a fresh string. * progmodes/idlw-shell.el (easymenu setup): Use dolist.
2009-10-31 02:38:34 +00:00
(with-current-buffer buffer
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(let (entry-type key key-list)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(goto-char (point-min))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(while (re-search-forward bibtex-entry-head nil t)
(setq entry-type (bibtex-type-in-head)
key (bibtex-key-in-head))
(if (or (and strings (bibtex-string= entry-type "string"))
(assoc-string entry-type bibtex-entry-field-alist t))
(if (member key key-list)
(push (format "%s:%d: Duplicate key `%s'\n"
(buffer-file-name)
(bibtex-current-line) key)
error-list)
(push key key-list))))
(push (cons buffer key-list) buffer-key-list))))
;; Check for duplicate keys among BibTeX buffers
(while (setq current-buf (pop buffer-list))
(setq current-keys (cdr (assq current-buf buffer-key-list)))
(with-current-buffer current-buf
(dolist (buffer buffer-list)
(dolist (key (cdr (assq buffer buffer-key-list)))
(when (assoc-string key current-keys)
(bibtex-search-entry key)
(push (format "%s:%d: Duplicate key `%s' in %s\n"
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(buffer-file-name) (bibtex-current-line) key
(abbreviate-file-name (buffer-file-name buffer)))
error-list))))))
;; Process error list
(if error-list
(let ((err-buf "*BibTeX validation errors*"))
(with-current-buffer (get-buffer-create err-buf)
(unless (eq major-mode 'compilation-mode) (compilation-mode))
(toggle-read-only -1)
(delete-region (point-min) (point-max))
(insert "BibTeX mode command `bibtex-validate-globally'\n\n")
(dolist (err (sort error-list 'string-lessp)) (insert err))
(set-buffer-modified-p nil)
(toggle-read-only 1)
(goto-char (point-min))
(forward-line 2)) ; first error message
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(display-buffer err-buf)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
nil) ; return `nil' (i.e., buffer is invalid)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(message "No duplicate keys.")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
t))) ; return `t' (i.e., buffer is valid)
(defun bibtex-next-field (begin &optional comma)
"Move point to end of text of next BibTeX field or entry head.
With prefix BEGIN non-nil, move point to its beginning. Optional arg COMMA
is as in `bibtex-enclosing-field'. It is t for interactive calls."
(interactive (list current-prefix-arg t))
(let ((bounds (bibtex-find-text-internal t nil comma))
end-of-entry)
(if (not bounds)
(setq end-of-entry t)
(goto-char (nth 3 bounds))
(if (assoc-string (car bounds) '("@String" "@Preamble") t)
(setq end-of-entry t)
;; BibTeX key or field
(if (looking-at ",[ \t\n]*") (goto-char (match-end 0)))
;; end of entry
(if (looking-at "[)}][ \t\n]*") (setq end-of-entry t))))
(if (and end-of-entry
(re-search-forward bibtex-any-entry-maybe-empty-head nil t))
(goto-char (match-beginning 0)))
(bibtex-find-text begin nil bibtex-help-message)))
(defun bibtex-find-text (&optional begin noerror help comma)
"Move point to end of text of current BibTeX field or entry head.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
With optional prefix BEGIN non-nil, move point to its beginning.
Unless NOERROR is non-nil, an error is signaled if point is not
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
on a BibTeX field. If optional arg HELP is non-nil print help message.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
When called interactively, the value of HELP is `bibtex-help-message'.
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls."
(interactive (list current-prefix-arg nil bibtex-help-message t))
(let ((bounds (bibtex-find-text-internal t nil comma)))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(cond (bounds
(if begin
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(progn (goto-char (nth 1 bounds))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(if (looking-at "[{\"]")
(forward-char)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(goto-char (nth 2 bounds))
(if (memq (preceding-char) '(?} ?\"))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(forward-char -1)))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if help (bibtex-print-help-message (car bounds))))
((not noerror) (error "Not on BibTeX field")))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-find-text-internal (&optional noerror subfield comma)
"Find text part of current BibTeX field or entry head.
Return list (NAME START-TEXT END-TEXT END STRING-CONST) with field name
or entry type, start and end of text, and end of field or entry head.
STRING-CONST is a flag which is non-nil if current subfield delimited by #
is a BibTeX string constant. Return value is nil if field or entry head
are not found.
If optional arg NOERROR is non-nil, an error message is suppressed
if text is not found. If optional arg SUBFIELD is non-nil START-TEXT
and END-TEXT correspond to the current subfield delimited by #.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
Optional arg COMMA is as in `bibtex-enclosing-field'."
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(save-excursion
(let ((pnt (point))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bounds (bibtex-enclosing-field comma t))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(case-fold-search t)
name start-text end-text end failure done no-sub string-const)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(bibtex-beginning-of-entry)
(cond (bounds
(setq name (bibtex-name-in-field bounds t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
start-text (bibtex-start-of-text-in-field bounds)
end-text (bibtex-end-of-text-in-field bounds)
end (bibtex-end-of-field bounds)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; @String
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
((setq bounds (bibtex-parse-string t))
(if (<= pnt (bibtex-end-of-string bounds))
(setq name "@String" ;; not a field name!
start-text (bibtex-start-of-text-in-string bounds)
end-text (bibtex-end-of-text-in-string bounds)
end (bibtex-end-of-string bounds))
(setq failure t)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; @Preamble
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
((setq bounds (bibtex-parse-preamble))
(if (<= pnt (bibtex-end-of-string bounds))
(setq name "@Preamble" ;; not a field name!
start-text (bibtex-start-of-text-in-string bounds)
end-text (bibtex-end-of-text-in-string bounds)
end (bibtex-end-of-string bounds))
(setq failure t)))
;; BibTeX head
((looking-at bibtex-entry-maybe-empty-head)
(goto-char (match-end 0))
(if comma (save-match-data
(re-search-forward "\\=[ \t\n]*," nil t)))
(if (<= pnt (point))
(setq name (match-string-no-properties bibtex-type-in-head)
start-text (or (match-beginning bibtex-key-in-head)
(match-end 0))
end-text (or (match-end bibtex-key-in-head)
(match-end 0))
end end-text
no-sub t) ; subfields do not make sense
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(setq failure t)))
(t (setq failure t)))
(when (and subfield (not failure))
(setq failure no-sub)
(unless failure
(goto-char start-text)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(while (not done)
(if (or (prog1 (looking-at bibtex-field-const)
(setq end-text (match-end 0)
string-const t))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(prog1 (setq bounds (bibtex-parse-field-string))
(setq end-text (cdr bounds)
string-const nil)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(progn
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (and (<= start-text pnt) (<= pnt end-text))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(setq done t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(goto-char end-text))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(if (looking-at "[ \t\n]*#[ \t\n]*")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(setq start-text (goto-char (match-end 0)))))
(setq done t failure t)))))
(cond ((not failure)
(list name start-text end-text end string-const))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
((and no-sub (not noerror))
(error "Not on text part of BibTeX field"))
((not noerror) (error "Not on BibTeX field"))))))
(defun bibtex-remove-OPT-or-ALT (&optional comma)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Remove the string starting optional/alternative fields.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
Align text and go thereafter to end of text. Optional arg COMMA
is as in `bibtex-enclosing-field'. It is t for interactive calls."
(interactive (list t))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bounds (bibtex-enclosing-field comma)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(save-excursion
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(goto-char (bibtex-start-of-name-in-field bounds))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(when (looking-at "OPT\\|ALT")
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(delete-region (match-beginning 0) (match-end 0))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; make field non-OPT
(search-forward "=")
(forward-char -1)
(delete-horizontal-space)
(if bibtex-align-at-equal-sign
(indent-to-column (- bibtex-text-indentation 2))
(insert " "))
(search-forward "=")
(delete-horizontal-space)
(if bibtex-align-at-equal-sign
(insert " ")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(indent-to-column bibtex-text-indentation))))))
(defun bibtex-remove-delimiters (&optional comma)
"Remove \"\" or {} around current BibTeX field text.
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls."
(interactive (list t))
(let ((bounds (bibtex-find-text-internal nil t comma)))
(unless (nth 4 bounds)
(delete-region (1- (nth 2 bounds)) (nth 2 bounds))
(delete-region (nth 1 bounds) (1+ (nth 1 bounds))))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-kill-field (&optional copy-only comma)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Kill the entire enclosing BibTeX field.
With prefix arg COPY-ONLY, copy the current field to `bibtex-field-kill-ring',
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
but do not actually kill it. Optional arg COMMA is as in
`bibtex-enclosing-field'. It is t for interactive calls."
(interactive (list current-prefix-arg t))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(let* ((case-fold-search t)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bounds (bibtex-enclosing-field comma))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(end (bibtex-end-of-field bounds))
(beg (bibtex-start-of-field bounds)))
(goto-char end)
;; Preserve white space at end of BibTeX entry
(if (looking-at "[ \t\n]*[)}]")
(progn (skip-chars-backward " \t\n")
(setq end (point)))
(skip-chars-forward ","))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(push (list (bibtex-name-in-field bounds) nil
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-text-in-field-bounds bounds))
bibtex-field-kill-ring)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(if (> (length bibtex-field-kill-ring) bibtex-field-kill-ring-max)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(setcdr (nthcdr (1- bibtex-field-kill-ring-max)
bibtex-field-kill-ring)
nil))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq bibtex-field-kill-ring-yank-pointer bibtex-field-kill-ring)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(unless copy-only
(delete-region beg end))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq bibtex-last-kill-command 'field))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(defun bibtex-copy-field-as-kill (&optional comma)
2009-01-14 08:00:46 +00:00
"Copy the BibTeX field at point to `bibtex-field-kill-ring'.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls."
(interactive (list t))
(bibtex-kill-field t comma))
1991-05-09 21:50:45 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-kill-entry (&optional copy-only)
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
"Kill the entire enclosing BibTeX entry.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
With prefix arg COPY-ONLY, copy the current entry to `bibtex-entry-kill-ring',
but do not actually kill it."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "P")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(let* ((case-fold-search t)
(beg (bibtex-beginning-of-entry))
(key (progn (looking-at bibtex-any-entry-maybe-empty-head)
(bibtex-key-in-head)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(end (progn (bibtex-end-of-entry)
(if (re-search-forward
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
bibtex-any-entry-maybe-empty-head nil 'move)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(goto-char (match-beginning 0)))
(point))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(push (buffer-substring-no-properties beg end)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bibtex-entry-kill-ring)
(if (> (length bibtex-entry-kill-ring) bibtex-entry-kill-ring-max)
(setcdr (nthcdr (1- bibtex-entry-kill-ring-max)
bibtex-entry-kill-ring)
nil))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(setq bibtex-entry-kill-ring-yank-pointer bibtex-entry-kill-ring)
(unless copy-only
(delete-region beg end)
;; remove key from `bibtex-reference-keys'.
(unless (functionp bibtex-reference-keys)
(setq bibtex-reference-keys
(delete (cons key t) bibtex-reference-keys))))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq bibtex-last-kill-command 'entry))
(defun bibtex-copy-entry-as-kill ()
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
"Copy the entire enclosing BibTeX entry to `bibtex-entry-kill-ring'."
1991-05-09 21:50:45 +00:00
(interactive)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-kill-entry t))
(defun bibtex-yank (&optional n)
"Reinsert the last BibTeX item.
More precisely, reinsert the field or entry killed or yanked most recently.
With argument N, reinsert the Nth most recently killed BibTeX item.
See also the command \\[bibtex-yank-pop]."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "*p")
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-insert-kill (1- n) t)
(setq this-command 'bibtex-yank))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-yank-pop (n)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
"Replace just-yanked killed BibTeX item with a different item.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
This command is allowed only immediately after a `bibtex-yank' or a
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
`bibtex-yank-pop'. In this case, the region contains a reinserted
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
previously killed BibTeX item. `bibtex-yank-pop' deletes that item
and inserts in its place a different killed BibTeX item.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
With no argument, the previous kill is inserted.
With argument N, insert the Nth previous kill.
If N is negative, this is a more recent kill.
The sequence of kills wraps around, so that after the oldest one
comes the newest one."
(interactive "*p")
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless (eq last-command 'bibtex-yank)
(error "Previous command was not a BibTeX yank"))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(setq this-command 'bibtex-yank)
(let ((inhibit-read-only t) key)
;; point is at end of yanked entry
(unless (functionp bibtex-reference-keys)
;; remove key of yanked entry from `bibtex-reference-keys'
(save-excursion
(goto-char (mark t))
(if (and (looking-at bibtex-any-entry-maybe-empty-head)
(setq key (bibtex-key-in-head)))
(setq bibtex-reference-keys
(delete (cons key t) bibtex-reference-keys)))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(delete-region (point) (mark t))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-insert-kill n t)))
(defun bibtex-empty-field (&optional comma)
"Delete the text part of the current field, replace with empty text.
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls."
(interactive (list t))
(let ((bounds (bibtex-enclosing-field comma)))
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
(goto-char (bibtex-start-of-text-in-field bounds))
(delete-region (point) (bibtex-end-of-text-in-field bounds))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(insert (bibtex-field-left-delimiter)
(bibtex-field-right-delimiter))
(bibtex-find-text t nil bibtex-help-message)))
1991-05-09 21:50:45 +00:00
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
(defun bibtex-pop-previous (arg)
1997-08-22 02:23:24 +00:00
"Replace text of current field with the similar field in previous entry.
With arg, goes up ARG entries. Repeated, goes up so many times. May be
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
intermixed with \\[bibtex-pop-next] (bibtex-pop-next)."
(interactive "p")
(bibtex-pop arg 'previous))
1991-05-09 21:50:45 +00:00
(defun bibtex-pop-next (arg)
"Replace text of current field with the text of similar field in next entry.
With arg, goes down ARG entries. Repeated, goes down so many times. May be
1991-05-09 21:50:45 +00:00
intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)."
(interactive "p")
(bibtex-pop): New generic function which unifies the functionality of bibtex-pop-previous and bibtex-pop-next. Now, bibtex-pop moves to the end of field after the pop. Concatenated strings are now handled correctly. Delimiters are not added to non-delimited entries. Changed occurences of bibtex-text-in-cfield to bibtex-text-in-field. (bibtex-pop-previous, bibtex-pop-next): Call bibtex-pop. (bibtex-complete-string): Fixed bug that removed delimiters around the following field if current field is already undelimited on completion. (bibtex-complete-string, bibtex-remove-double-quotes-or-braces): Only remove delimiters if field text is not concatenated. (bibtex-font-lock-keywords): Use the same regexps used in all other places of bibtex.el to parse the buffer. (bibtex-mode): Changed the definition of font-lock-defaults, so that quote-delimited entries aren't fontified as strings anymore. (bibtex-parse-keys): Changed the regexp used for finding crossref entries. (bibtex-field-const, bibtex-reference-key): Fixed the regexp to match more of the characters allowed here by BibTeX/LaTeX. (bibtex-field-name): Made it less restrictive. (bibtex-field-string): Changed so that quote-delimited entries with quotes inside aren't a problem anymore. Changed nesting level of braces in entries to support three inner braces. (bibtex-validate-buffer): By giving an optional argument, the user can now let it not validate the whole buffer, but only the portion starting at point. Small modification in strategy used to find next entry. (bibtex-print-help-message): Ignore case in field name when searching for help text. (bibtex-submit-bug-report): New function.
1996-03-08 17:42:30 +00:00
(bibtex-pop arg 'next))
1991-05-09 21:50:45 +00:00
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-clean-entry (&optional new-key called-by-reformat)
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
"Finish editing the current BibTeX entry and clean it up.
Check that no required fields are empty and format entry dependent
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
on the value of `bibtex-entry-format'.
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
If the reference key of the entry is empty or a prefix argument is given,
calculate a new reference key. (Note: this works only if fields in entry
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
begin on separate lines prior to calling `bibtex-clean-entry' or if
'realign is contained in `bibtex-entry-format'.)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
Don't call `bibtex-clean-entry' on @Preamble entries.
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
At end of the cleaning process, the functions in
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
`bibtex-clean-entry-hook' are called with region narrowed to entry."
;; Opt. arg CALLED-BY-REFORMAT is t if `bibtex-clean-entry'
;; is called by `bibtex-reformat'
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(interactive "P")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((case-fold-search t)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(start (bibtex-beginning-of-entry))
(_ (or (looking-at bibtex-any-entry-maybe-empty-head)
(error "Not inside a BibTeX entry")))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(entry-type (bibtex-type-in-head))
(key (bibtex-key-in-head)))
(cond ((bibtex-string= entry-type "preamble")
;; (bibtex-format-preamble)
(error "No clean up of @Preamble entries"))
((bibtex-string= entry-type "string")
(setq entry-type 'string))
;; (bibtex-format-string)
(t (bibtex-format-entry)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
;; set key
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(when (or new-key (not key))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(setq key (bibtex-generate-autokey))
;; Sometimes `bibtex-generate-autokey' returns an empty string
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(if (or bibtex-autokey-edit-before-use (string= "" key))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(setq key (if (eq entry-type 'string)
(bibtex-read-string-key key)
(bibtex-read-key "Key to use: " key))))
(save-excursion
(re-search-forward (if (eq entry-type 'string)
bibtex-string-maybe-empty-head
bibtex-entry-maybe-empty-head))
(if (match-beginning bibtex-key-in-head)
(delete-region (match-beginning bibtex-key-in-head)
(match-end bibtex-key-in-head)))
(insert key)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(unless called-by-reformat
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(let* ((end (save-excursion
(bibtex-end-of-entry)
(if (re-search-forward
bibtex-entry-maybe-empty-head nil 'move)
(goto-char (match-beginning 0)))
(point)))
(entry (buffer-substring start end))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; include the crossref key in index
(index (let ((bibtex-maintain-sorted-entries 'crossref))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(bibtex-entry-index))) ; moves point to end of head
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
error)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; sorting
(if (and bibtex-maintain-sorted-entries
(not (and bibtex-sort-ignore-string-entries
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(eq entry-type 'string))))
(progn
(delete-region start end)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(setq error (not (bibtex-prepare-new-entry index))
start (point)) ; update start
(save-excursion (insert entry)))
(bibtex-search-entry key)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(setq error (or (/= (point) start)
(bibtex-search-entry key nil end))))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(if error
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(error "New inserted entry yields duplicate key"))
(dolist (buffer (bibtex-initialize))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(with-current-buffer buffer
(if (cdr (assoc-string key bibtex-reference-keys))
(error "Duplicate key in %s" (buffer-file-name)))))
;; Only update `bibtex-strings' and `bibtex-reference-keys'
;; if they have been built already.
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(cond ((eq entry-type 'string)
;; We have a @String entry.
(unless (or (functionp bibtex-strings)
(assoc key bibtex-strings))
(push (cons key (bibtex-text-in-string
(bibtex-parse-string) t))
bibtex-strings)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; We have a normal entry.
((not (functionp bibtex-reference-keys))
(let ((found (assoc key bibtex-reference-keys)))
(cond ((not found)
(push (cons key t) bibtex-reference-keys))
((not (cdr found))
;; Turn a crossref key into a header key
(setq bibtex-reference-keys
(cons (cons key t)
(delete (list key) bibtex-reference-keys))))))
;; If entry has a crossref key, it goes into the list
;; `bibtex-reference-keys', too.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(if (and (nth 1 index)
(not (assoc (nth 1 index) bibtex-reference-keys)))
(push (list (nth 1 index)) bibtex-reference-keys)))))
;; final clean up
(if bibtex-clean-entry-hook
(save-excursion
(save-restriction
(bibtex-narrow-to-entry)
(run-hooks 'bibtex-clean-entry-hook)))))))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(defun bibtex-fill-field-bounds (bounds justify &optional move)
"Fill BibTeX field delimited by BOUNDS.
If JUSTIFY is non-nil justify as well.
If optional arg MOVE is non-nil move point to end of field."
(let ((end-field (copy-marker (bibtex-end-of-field bounds))))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (not justify)
(goto-char (bibtex-start-of-text-in-field bounds))
(goto-char (bibtex-start-of-field bounds))
(forward-char) ; leading comma
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-delete-whitespace)
(open-line 1)
(forward-char)
(indent-to-column (+ bibtex-entry-offset
bibtex-field-indentation))
(re-search-forward "[ \t\n]*=" end-field)
(replace-match "=")
(forward-char -1)
(if bibtex-align-at-equal-sign
(indent-to-column
(+ bibtex-entry-offset (- bibtex-text-indentation 2)))
(insert " "))
(forward-char)
(bibtex-delete-whitespace)
(if bibtex-align-at-equal-sign
(insert " ")
(indent-to-column bibtex-text-indentation)))
;; Paragraphs within fields are not preserved. Bother?
(fill-region-as-paragraph (line-beginning-position) end-field
default-justification nil (point))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(if move (goto-char end-field))))
(defun bibtex-fill-field (&optional justify)
"Like \\[fill-paragraph], but fill current BibTeX field.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
If optional prefix JUSTIFY is non-nil justify as well.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
In BibTeX mode this function is bound to `fill-paragraph-function'."
(interactive "*P")
(let ((pnt (copy-marker (point)))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bounds (bibtex-enclosing-field t)))
(bibtex-fill-field-bounds bounds justify)
(goto-char pnt)))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-fill-entry ()
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
"Fill current BibTeX entry.
Realign entry, so that every field starts on a separate line. Field
1997-08-22 02:23:24 +00:00
names appear in column `bibtex-field-indentation', field text starts in
column `bibtex-text-indentation' and continuation lines start here, too.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If `bibtex-align-at-equal-sign' is non-nil, align equal signs, too."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "*")
(let ((pnt (copy-marker (point)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(end (copy-marker (bibtex-end-of-entry)))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(beg (bibtex-beginning-of-entry)) ; move point
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
bounds)
(bibtex-delete-whitespace)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(indent-to-column bibtex-entry-offset)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(bibtex-beginning-first-field beg)
(while (setq bounds (bibtex-parse-field))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(bibtex-fill-field-bounds bounds t t))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(if (looking-at ",")
(forward-char))
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(skip-chars-backward " \t\n")
(bibtex-delete-whitespace)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(open-line 1)
(forward-char)
(indent-to-column bibtex-entry-offset)
(goto-char pnt)))
(defun bibtex-realign ()
"Realign BibTeX entries such that they are separated by one blank line."
(goto-char (point-min))
(let ((case-fold-search t)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(entry-type (concat "[ \t\n]*\\(" bibtex-entry-type "\\)")))
;; No blank lines prior to the first entry if there no
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; non-white characters in front of it.
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(when (looking-at entry-type)
(replace-match "\\1"))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; Entries are separated by one blank line.
(while (re-search-forward entry-type nil t)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(replace-match "\n\n\\1"))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; One blank line past the last entry if it is followed by
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; non-white characters, no blank line otherwise.
(beginning-of-line)
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(when (re-search-forward bibtex-entry-type nil t)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-end-of-entry)
(bibtex-delete-whitespace)
(open-line (if (eobp) 1 2)))))
(defun bibtex-reformat (&optional read-options)
1997-08-22 02:23:24 +00:00
"Reformat all BibTeX entries in buffer or region.
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
Without prefix argument, reformatting is based on `bibtex-entry-format'.
1997-08-22 02:23:24 +00:00
With prefix argument, read options for reformatting from minibuffer.
With \\[universal-argument] \\[universal-argument] prefix argument, reuse previous answers (if any) again.
If mark is active reformat entries in region, if not in whole buffer."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "*P")
(let* ((pnt (point))
(use-previous-options
(and (equal (prefix-numeric-value read-options) 16)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(or bibtex-reformat-previous-options
(bibtex-mode): Replaced manual splitting of path at ':' characters by call to split-string. Added RCS version identification. Some temporary comments removed. (bibtex-field-name, bibtex-entry-type): Made the relationship explicit. (bibtex-field-const): Allow capital letters. (bibtex-start-of-string): Deleted because unused. Unified some nomenclature. We no longer use the term 'reference' to describe a bibtex entry as a whole. Further, reference keys are no longer called 'labels'. (bibtex-keys): Renamed to bibtex-reference-keys. (bibtex-reformat-previous-labels): Renamed to bibtex-reformat-previous-reference-keys. (bibtex-reference-type): Renamed to bibtex-entry-type. (bibtex-reference-head): Renamed to bibtex-entry-head. (bibtex-reference-maybe-empty-head): Renamed to bibtex-entry-maybe-empty-head. (bibtex-key-in-reference): Renamed to bibtex-key-in-entry. (bibtex-search-reference): Renamed to bibtex-search-entry. (bibtex-enclosing-reference-maybe-empty-head): Renamed to bibtex-enclosing-entry-maybe-empty-head. (bibtex-entry-field-alist, bibtex-entry-head, bibtex-font-lock-keywords, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message, bibtex-make-field, bibtex-end-of-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-find-text, bibtex-kill-entry, bibtex-clean-entry, bibtex-reformat, bibtex-complete-key, bibtex-String) : Use the new nomenclature. (bibtex-strings, bibtex-keys): Removed redundant comment. (bibtex-format-field-delimiters): New function, functionality extracted from bibtex-format-entry. (bibtex-autokey-get-yearfield-digits): New function, functionality extracted from bibtex-autokey-get-yearfield. Completely reimplemented parsing of bibtex entries in order to avoid stack overflow in the regexp matcher if field contents become large. (bibtex-cfield, bibtex-name-in-cfield, bibtex-text-in-cfield, bibtex-field-string-part-not-braced, bibtex-field-string-part-no-inner-braces, bibtex-field-string-part-1-inner-brace, bibtex-field-string-part-2-inner-braces, bibtex-field-string-part-3-inner-braces, bibtex-field-string-braced, bibtex-field-string-quoted, bibtex-field-string, bibtex-field-string-or-const, bibtex-field-text, bibtex-field, bibtex-name-in-field, bibtex-text-in-field, bibtex-reference-infix, bibtex-string, bibtex-key-in-string, bibtex-text-in-string): Deleted as parsing is now performed by the following functions. (bibtex-parse-nested-braces, bibtex-parse-field-string-braced, bibtex-parse-quoted-string, bibtex-parse-field-string-quoted, bibtex-parse-field-string, bibtex-search-forward-field-string, bibtex-parse-association, bibtex-field-name-for-parsing, bibtex-parse-field-name, bibtex-parse-field-text, bibtex-parse-field, bibtex-search-forward-field, bibtex-search-backward-field, bibtex-start-of-field, bibtex-end-of-field, bibtex-start-of-name-in-field, bibtex-end-of-name-in-field, bibtex-start-of-text-in-field, bibtex-end-of-text-in-field, bibtex-parse-string-prefix, bibtex-parse-string-postfix, bibtex-parse-string, bibtex-search-forward-string, bibtex-search-backward-string, bibtex-start-of-string, bibtex-end-of-string, bibtex-start-of-reference-key-in-string, bibtex-end-of-reference-key-in-string, bibtex-start-of-text-in-string, bibtex-end-of-text-in-string): New functions for the parsing of bibtex entries. Instead of reporting the results of the parsing by match-beginning or match-end, these functions return data structures that hold the corresponding positions. (bibtex-enclosing-field): Changed to also report field boundaries by return values rather than by match-beginning or match-end. The following functions have been adapted to use the new parsing functions. (bibtex-skip-to-valid-entry, bibtex-search-reference, bibtex-enclosing-field, bibtex-format-entry, bibtex-autokey-get-namefield, bibtex-autokey-get-titlestring, bibtex-parse-keys, bibtex-complete, bibtex-pop, bibtex-mode, bibtex-print-help-message, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-validate, bibtex-next-field, bibtex-find-text, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-empty-field, bibtex-fill-entry): Use the new method for parsing. (bibtex-assoc-of-regexp, bibtex-skip-to-valid-entry, bibtex-map-entries, bibtex-flash-head, bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry, bibtex-autokey-change, bibtex-autokey-get-namefield, bibtex-autokey-get-names, bibtex-autokey-get-titlestring, bibtex-autokey-get-titles, bibtex-parse-keys, bibtex-pop, bibtex-mode, bibtex-end-of-entry, bibtex-ispell-abstract, bibtex-sort-buffer, bibtex-validate, bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry): Use let* instead of let in order to make the new binding of case-fold-search immediately visible. Copyright notice is up to date. Added constant 'bibtex-maintainer-salutation. (bibtex-mode): use with-temp-buffer rather than make-temp-name, use match-string-no-properties and eliminate a quadratic behavior when building bibtex-strings. (bibtex-reference-key): Accept string entries whose reference key contains upper case letters. (bibtex-reference-head): Allow entries to start with a new line. Hiding of entry bodies is not longer provided by bibtex.el directly. Instead the hideshow package can be used. Added a special bibtex entry to hs-special-modes-alist. (bibtex-hs-forward-sexp): Added for hideshow.el. (bibtex-entry-field-alist): Added booktitle field to proceedings entry type (for cross referencing). Thanks to Wagner Toledo Correa for the suggestion. Added `reftex-view-crossref-from-bibtex' to menu.
2000-02-15 09:38:09 +00:00
bibtex-reformat-previous-reference-keys)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-entry-format
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(cond (read-options
(if use-previous-options
bibtex-reformat-previous-options
(setq bibtex-reformat-previous-options
(mapcar (lambda (option)
(if (y-or-n-p (car option)) (cdr option)))
`(("Realign entries (recommended)? " . 'realign)
("Remove empty optional and alternative fields? " . 'opts-or-alts)
("Remove delimiters around pure numerical fields? " . 'numerical-fields)
(,(concat (if bibtex-comma-after-last-field "Insert" "Remove")
" comma at end of entry? ") . 'last-comma)
("Replace double page dashes by single ones? " . 'page-dashes)
("Delete whitespace at the beginning and end of fields? " . 'whitespace)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
("Inherit booktitle? " . 'inherit-booktitle)
("Force delimiters? " . 'delimiters)
("Unify case of entry types and field names? " . 'unify-case)
("Enclose parts of field entries by braces? " . 'braces)
("Replace parts of field entries by string constants? " . 'strings))))))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; Do not include required-fields because `bibtex-reformat'
;; cannot handle the error messages of `bibtex-format-entry'.
;; Use `bibtex-validate' to check for required fields.
((eq t bibtex-entry-format)
'(realign opts-or-alts numerical-fields delimiters
last-comma page-dashes unify-case inherit-booktitle
whitespace braces strings))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(t
(cons 'realign (remove 'required-fields bibtex-entry-format)))))
(reformat-reference-keys
(if read-options
(if use-previous-options
bibtex-reformat-previous-reference-keys
(setq bibtex-reformat-previous-reference-keys
(y-or-n-p "Generate new reference keys automatically? ")))))
(bibtex-sort-ignore-string-entries t)
bibtex-autokey-edit-before-use)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(save-restriction
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if mark-active (narrow-to-region (region-beginning) (region-end)))
(if (memq 'realign bibtex-entry-format)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(bibtex-realign))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-progress-message "Formatting" 1)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(bibtex-map-entries (lambda (key beg end)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-progress-message)
(bibtex-clean-entry reformat-reference-keys t)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(bibtex-progress-message 'done))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(when reformat-reference-keys
(kill-local-variable 'bibtex-reference-keys)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(when bibtex-maintain-sorted-entries
(bibtex-progress-message "Sorting" 1)
(bibtex-sort-buffer)
(bibtex-progress-message 'done)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(goto-char pnt)))
(defun bibtex-convert-alien (&optional read-options)
"Make an alien BibTeX buffer fully usable by BibTeX mode.
If a file does not conform with all standards used by BibTeX mode,
some of the high-level features of BibTeX mode are not available.
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
This function tries to convert current buffer to conform with these standards.
With prefix argument READ-OPTIONS non-nil, read options for reformatting
entries from minibuffer."
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(interactive "*P")
(message "Starting to validate buffer...")
(sit-for 1)
(bibtex-realign)
(deactivate-mark) ; So `bibtex-validate' works on the whole buffer.
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (not (let (bibtex-maintain-sorted-entries)
(bibtex-validate)))
(message "Correct errors and call `bibtex-convert-alien' again")
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(message "Starting to reformat entries...")
(sit-for 2)
(bibtex-reformat read-options)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(goto-char (point-max))
(message "Buffer is now parsable. Please save it.")))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-complete ()
"Complete word fragment before point according to context.
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
If point is inside key or crossref field perform key completion based on
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
`bibtex-reference-keys'. Inside a month field perform key completion
based on `bibtex-predefined-month-strings'. Inside any other field
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
\(including a String or Preamble definition) perform string completion
based on `bibtex-strings'.
An error is signaled if point is outside key or BibTeX field."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(let ((pnt (point))
(case-fold-search t)
bounds name compl)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(save-excursion
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(if (and (setq bounds (bibtex-enclosing-field nil t))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(>= pnt (bibtex-start-of-text-in-field bounds))
(<= pnt (bibtex-end-of-text-in-field bounds)))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(setq name (bibtex-name-in-field bounds t)
compl (cond ((bibtex-string= name "crossref")
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; point is in crossref field
'crossref-key)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
((bibtex-string= name "month")
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; point is in month field
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
bibtex-predefined-month-strings)
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
;; point is in other field
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(t (bibtex-strings))))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-beginning-of-entry)
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
(cond ((setq bounds (bibtex-parse-string t))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
;; point is inside a @String key
(cond ((and (>= pnt (nth 1 (car bounds)))
(<= pnt (nth 2 (car bounds))))
(setq compl 'string))
;; point is inside a @String field
((and (>= pnt (bibtex-start-of-text-in-string bounds))
(<= pnt (bibtex-end-of-text-in-string bounds)))
(setq compl (bibtex-strings)))))
;; point is inside a @Preamble field
(bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Removed. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. (bibtex-search-forward-field, bibtex-search-backward-field): Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) (bibtex-beginning-first-field): New functions. (bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp. (bibtex-map-entries): Fix docstring. (bibtex-flash-head): New arg prompt. Simplify. (bibtex-enclosing-field): Include code of bibtex-inside-field. (bibtex-insert-kill): Simplify. Always insert text past the current field or entry. (bibtex-format-entry): Use bibtex-parse-field. (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. (bibtex-print-help-message): New args field and comma. Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. (bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string. Handle preambles. Simplify code for thorough test. (bibtex-next-field, bibtex-find-text, bibtex-find-text-internal): New arg comma. Handle entry heads. (bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters) (bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field): New arg comma. (bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head. (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble.
2005-12-29 15:25:28 +00:00
((setq bounds (bibtex-parse-preamble))
(if (and (>= pnt (bibtex-start-of-text-in-string bounds))
(<= pnt (bibtex-end-of-text-in-string bounds)))
(setq compl (bibtex-strings))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((and (looking-at bibtex-entry-maybe-empty-head)
;; point is inside a key
(or (and (match-beginning bibtex-key-in-head)
(>= pnt (match-beginning bibtex-key-in-head))
(<= pnt (match-end bibtex-key-in-head)))
;; or point is on empty key
(and (not (match-beginning bibtex-key-in-head))
(= pnt (match-end 0)))))
(setq compl 'key)))))
(cond ((eq compl 'key)
;; key completion: no cleanup needed
(setq choose-completion-string-functions nil)
(let (completion-ignore-case)
(bibtex-complete-internal (bibtex-global-key-alist))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((eq compl 'crossref-key)
;; crossref key completion
;;
;; If we quit the *Completions* buffer without requesting
;; a completion, `choose-completion-string-functions' is still
;; non-nil. Therefore, `choose-completion-string-functions' is
;; always set (either to non-nil or nil) when a new completion
;; is requested.
(let (completion-ignore-case)
(setq choose-completion-string-functions
2009-10-15 01:50:17 +00:00
(lambda (choice buffer base-position &rest ignored)
(setq choose-completion-string-functions nil)
2009-10-15 01:50:17 +00:00
(choose-completion-string choice buffer base-position)
(bibtex-complete-crossref-cleanup choice)
t)) ; needed by choose-completion-string-functions
(bibtex-complete-crossref-cleanup
(bibtex-complete-internal (bibtex-global-key-alist)))))
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
((eq compl 'string)
;; string key completion: no cleanup needed
(setq choose-completion-string-functions nil)
(let ((completion-ignore-case t))
(bibtex-complete-internal bibtex-strings)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(compl
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
;; string completion
(let ((completion-ignore-case t))
(setq choose-completion-string-functions
2009-10-15 01:50:17 +00:00
`(lambda (choice buffer base-position &rest ignored)
(setq choose-completion-string-functions nil)
2009-10-15 01:50:17 +00:00
(choose-completion-string choice buffer base-position)
(bibtex-complete-string-cleanup choice ',compl)
t)) ; needed by `choose-completion-string-functions'
(bibtex-complete-string-cleanup (bibtex-complete-internal compl)
compl)))
(t (setq choose-completion-string-functions nil)
(error "Point outside key or BibTeX field")))))
1991-05-09 21:50:45 +00:00
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-Article ()
"Insert a new BibTeX @Article entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Article"))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-Book ()
"Insert a new BibTeX @Book entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Book"))
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(defun bibtex-Booklet ()
"Insert a new BibTeX @Booklet entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Booklet"))
(defun bibtex-InBook ()
"Insert a new BibTeX @InBook entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "InBook"))
(defun bibtex-InCollection ()
"Insert a new BibTeX @InCollection entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "InCollection"))
(defun bibtex-InProceedings ()
"Insert a new BibTeX @InProceedings entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "InProceedings"))
(defun bibtex-Manual ()
"Insert a new BibTeX @Manual entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Manual"))
(defun bibtex-MastersThesis ()
"Insert a new BibTeX @MastersThesis entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "MastersThesis"))
(defun bibtex-Misc ()
"Insert a new BibTeX @Misc entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Misc"))
(defun bibtex-PhdThesis ()
"Insert a new BibTeX @PhdThesis entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "PhdThesis"))
(defun bibtex-Proceedings ()
"Insert a new BibTeX @Proceedings entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Proceedings"))
(defun bibtex-TechReport ()
"Insert a new BibTeX @TechReport entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "TechReport"))
(defun bibtex-Unpublished ()
"Insert a new BibTeX @Unpublished entry; see also `bibtex-entry'."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-entry "Unpublished"))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(defun bibtex-String (&optional key)
"Insert a new BibTeX @String entry with key KEY."
(bibtex-sort-entry-class) (bibtex-comment-start): Use defcustom. (bibtex-entry-field-alist): Use nil if initial content of the field is undefined. Fix docstring. (bibtex-parse-keys-timeout, bibtex-autokey-additional-names) (bibtex-generate-autokey, bibtex-parse-buffers-stealthily) (bibtex-mode, bibtex-field-list, bibtex-entry-updat) (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field): Fix docstring. (bibtex-autokey-title-terminators): Use only one regexp. (bibtex-string-maybe-empty-head): New variable. (bibtex-remove-delimiters-string): New function. (bibtex-text-in-field-bounds, bibtex-text-in-string): Use bibtex-remove-delimiters-string. (bibtex-progress-message, bibtex-field-left-delimiter) (bibtex-field-right-delimiter, bibtex-entry-left-delimiter) (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq. (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'. Simplify. (bibtex-format-entry): Use save-excursion for inherited booktitle. Use eq and bibtex-remove-delimiters-string. For end markers use insertion type so that marker stays after inserted text. (bibtex-autokey-get-names): Return empty string if name is missing. (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before calling bibtex-autokey-name-case-convert. (bibtex-autokey-demangle-title): Call bibtex-autokey-titleword-case-convert. Remove call to bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title. (bibtex-global-key-alist, bibtex-read-string-key): New functions. (bibtex-read-key): New optional arg global. (bibtex-files-expand): New optional arg force. (bibtex-complete-string-cleanup): Expansion of abbrev can be absent. (bibtex-complete-crossref-cleanup): Rename from bibtex-complete-key-cleanup. Simplify code. (bibtex-copy-summary-as-kill): Remove arg key. Operate on current entry. Use looking-at. (bibtex-button): Add docstring. (bibtex-entry): Simplify. (bibtex-make-field): Replace optional arg called-by-yank with more specific args move and interactive. (bibtex-end-of-entry): Use forward-sexp. (bibtex-find-entry-globally): Remove. (bibtex-find-crossref): Allow for crossref key located in other buffer. Bound to C-c C-x. (bibtex-find-entry): New optional args global and display. (bibtex-find-text): Fix docstring. Remove arg as-if-interactive. (bibtex-validate): Use arg force of bibtex-files-expand. (bibtex-clean-entry): Bugfix, clean string entries properly. Always keep point at beginning of entry. (bibtex-complete): Bugfix. Handle string entries properly. Call cleanup functions only if needed. (bibtex-String): Use bibtex-read-string-key. (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter case of replacement text.
2004-11-26 23:24:44 +00:00
(interactive (list (bibtex-read-string-key)))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(let ((bibtex-maintain-sorted-entries
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(unless bibtex-sort-ignore-string-entries
bibtex-maintain-sorted-entries))
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
endpos)
(unless (bibtex-prepare-new-entry (list key nil "String"))
(error "Entry with key `%s' already exists" key))
(if (zerop (length key)) (setq key nil))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(indent-to-column bibtex-entry-offset)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(insert "@String"
(bibtex-entry-left-delimiter))
(if key
(insert key)
(setq endpos (point)))
(insert " = "
(bibtex-field-left-delimiter))
(if key
(setq endpos (point)))
(insert (bibtex-field-right-delimiter)
(bibtex-entry-right-delimiter)
"\n")
(goto-char endpos)))
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(defun bibtex-Preamble ()
"Insert a new BibTeX @Preamble entry."
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(interactive "*")
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(bibtex-move-outside-of-entry)
(bibtex-mode-map): Changed the binding of the C-TAB key, such that XEmacs will understand it, too. (bibtex-format-entry, bibtex-end-of-entry): Give specific error message if not on valid BibTeX entry. (bibtex-field-string-quoted): Small bug fix. Allow backslash followed by newline. (bibtex-reposition-window, bibtex-mark-entry): Two new functions, bound to M-C-l and M-C-h, respectively. (bibtex-reformat-previous-options, bibtex-reformat-previous-labels): New internal variables used by bibtex-reformat. (bibtex-clean-entry-hook): New hook to be called after entry has been cleaned. (bibtex-clean-entry): Run the hook bibtex-clean-entry-hook. (bibtex-entry-field-alist): Small bug fix. (bibtex-autokey-title-terminators): Made -- a terminator instead of ---. (bibtex-font-lock-keywords): Don't treat ALT prefixed entries as comments. (bibtex-entry): Fixed parameter list. This function is not intended to be called with required and optional fields as optional arguments anymore. (bibtex-generate-autokey): Now split into various small functions. (bibtex-autokey-names-stretch, bibtex-autokey-additional-names): New variables used by bibtex-generate-autokey. (bibtex-autokey-get-namefield, bibtex-autokey-get-names) (bibtex-autokey-demangle-name, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield, bibtex-autokey-get-titlestring) (bibtex-autokey-get-titles, bibtex-autokey-get-titlelist): New helper functions for bibtex-generate-autokey. (bibtex-submit-bug-report): Report all variables. (bibtex-contline-indentation): New user option. (bibtex-entry-offset): Renamed from bibtex-entry-indentation. (bibtex-entry-field-alist): Used different order for some fields (as documented in btxdoc.tex). Changed one of the comment strings. (bibtex-mode-hook, bibtex-add-entry-hook): Add var doc. (bibtex-autokey-before-presentation-hook): New variable to be called before autokey presentation. (bibtex-generate-autokey): Call bibtex-autokey-before-presentation-hook. Doc fix. (bibtex-reference-key): Reincluded parentheses. Parentheses should be disallowed only in field constants. (bibtex-autokey-transcriptions): Fixed bug (two entries for `\o' while `\oe' entry was missing). (bibtex-entry-indentation): New variable to determine the indentation of all entries. (bibtex-move-outside-of-entry): Use `skip-chars-forward' instead of `re-search-forward'. (bibtex-beginning-of-first-entry, bibtex-beginning-of-last-entry): Renamed from beginning-of-first-bibtex-entry and beginning-of-last-bibtex-entry. Go to beginning of line, return point. (bibtex-do-auto-fill, bibtex-make-field, bibtex-entry) (bibtex-String, bibtex-Preamble): Respect `bibtex-entry-indentation'. (bibtex-beginning-of-entry, bibtex-end-of-entry): Make it work with indented entries. (bibtex-count-entries, bibtex-sort-buffer, bibtex-validate, bibtex-kill-entry, bibtex-reformat): Use return value from bibtex-beginning-of-first-entry. (bibtex-clean-entry): Use `bibtex-reference-maybe-empty-head' instead of a fixed string. (bibtex-beginning-of-entry, bibtex-end-of-entry): Now return point if called from a program. (bibtex-enclosing-field, bibtex-format-entry, bibtex-generate-autokey, bibtex-parse-keys, bibtex-mode, bibtex-ispell-entry, bibtex-narrow-to-entry, bibtex-sort-buffer, bibtex-find-entry-location, bibtex-validate, bibtex-clean-entry, bibtex-fill-entry): Use new return values of these functions. (bibtex-ispell-abstract): Bug fix (inherently by the change to bibtex-end-of-entry). (bibtex-field-history): New variable for history buffer of field name reading. (bibtex-make-field): Use completion. Object to completion are all standard fields defined for the current entry. Bound to `C-c C-f'. (bibtex-mode): Set `comment-start' and `comment-start-skip' to "@Comment ", `comment-column' to 0. (bibtex-autokey-transcriptions): New variable. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-change-strings): Use bibtex-autokey-transcriptions as default value. (bibtex-find-entry-location): Handle empty buffer. (bibtex-entry-delimiters): New variable to determine if entries shall be delimited by braces or parentheses. (bibtex-entry-left-delimiter, bibtex-entry-right-delimiter): New helper functions. (bibtex-entry, bibtex-String, bibtex-Preamble): Respect `bibtex-entry-delimiters'. (bibtex-entry-format): Doc fix. (bibtex-reference-key, bibtex-field-const): Removed parentheses from allowed characters. (bibtex-end-of-entry): Better handling of incorrect preambles. (bibtex-validate): Small change to avoid reparsing of errors, if you enter `compile-goto-error' in compilation buffer. (bibtex-progress-message): New function to show progress of some long-lasting functions in BibTeX mode by indicating percentage of done work. (bibtex-progress-lastperc, bibtex-progress-lastmes) (bibtex-progress-interval): New internal variables for `bibtex-progress-message'. (bibtex-parse-keys, bibtex-reformat, bibtex-validate): Use new function `bibtex-progress-message'. (current-line): New helper function to calculate current linenumber. Something like this should really be defined somewhere else in Emacs. (bibtex-validate): Changed to show all errors in buffer in a `compilation mode' buffer. If there are syntax errors, it aborts after the syntax check, since higher-level check functions rely on the syntactical correctness of buffer. If called from another lisp function (as `bibtex-convert-alien') the return value shows whether validating has been successful. Fixed bug which made checking for absent required fields work incorrectly. (bibtex-parse-keys-timeout): Set to a value reasonable higher (twice as high) than `lazy-lock-stealth-time'. (bibtex-member-of-regexp, assoc-of-regexp): Small cosmetic changes. (bibtex-buffer-last-parsed-tick): Renamed from bibtex-buffer-last-parsed-for-keys-tick and made it really buffer-local (bug fix). (bibtex-parse-keys): Make it use bibtex-buffer-last-parsed-tick. (bibtex-parse-buffers-stealthily): New function which parses all BibTeX buffers if emacs has been idle an efficient amount of time. (bibtex-parse-idle-timer): New variable which stores whether idle timer for parsing already is installed. (bibtex-parse-keys): Make it callable verbosely. Returns now nil if it has been aborted. (bibtex-mode): Run the new function bibtex-parse-buffers-stealthily. (bibtex-generate-autokey): Changed the name part generation (bugfix). This function handles now correctly all three forms of BibTeX names, "First von Last", "von Last, First", "von Last, Jr, First". In every case the "Last" part is correctly extracted. If the "Last" part consists of more than one token only the first is used. Name fields spread over more than one line are no problem anymore. (bibtex-entry-format): Changed default value to exclude 'page-dashes. Modified documentation. (bibtex-autokey-name-change-strings) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings, bibtex-entry) (bibtex-validate): Doc fixes. (bibtex-mode-map): Bound `C-c $' to bibtex-ispell-abstract. (bibtex-generate-autokey): Changed documentation. Small modification in calculating title field. (bibtex-mode): Included bibtex-ispell-entry into the list of `interesting' functions. (bibtex-kill-field): Bug fix (killing of first field in entry yielded error). (bibtex-string-file-path): New variable which defines the path to search for bibtex-string-files. It defaults to contents of environment variable BIBINPUTS. (bibtex-mode): Use this variable. (bibtex-next-field, bibtex-find-text): Will now work with string entries as well. (bibtex-mode-map): bibtex-complete-key wasn't bound correctly. (bibtex-complete): Fixed bug (used string entries defined in buffer as object to completion). (Menu): Use easymenu. More menu items for `BibTeX-Edit' menu. Use nested menus. (bibtex-field-kill-ring-max) (bibtex-entry-kill-ring-max): Two new variables substituting bibtex-kill-ring-max. (bibtex-field-kill-ring, bibtex-entry-kill-ring): Two new variables substituting bibtex-kill-ring. (bibtex-field-kill-ring-yank-pointer) (bibtex-entry-kill-ring-yank-pointer): Two new variables substituting bibtex-kill-ring-yank-pointer. (bibtex-last-kill-command): New variable keeping the type of the last kill command. (bibtex-insert-current-kill): Clean distinction between the two BibTeX kill rings. (bibtex-kill-field): Use new variable bibtex-field-kill-ring. (bibtex-kill-entry): Use new variable bibtex-entry-kill-ring. (bibtex-kill-ring, bibtex-kill-ring-yank-pointer): New internal variables like kill-ring and kill-ring-yank-pointer, but bibtex-kill-ring holds fields or complete reference entries instead of raw strings. (bibtex-kill-ring-max): New user option similar to kill-ring-max. (bibtex-kill-field): Renamed from bibtex-delete-field again. It now supports the new variable bibtex-kill-ring. (bibtex-copy-field-as-kill, bibtex-kill-entry) (bibtex-copy-entry-as-kill, bibtex-yank, bibtex-yank-pop): New interactive functions, which work on the bibtex-kill-ring variable. (bibtex-insert-current-kill): New helper function to insert contents of bibtex-kill-ring in an appropriate way. (bibtex-make-field): New optional argument to tell the function if it was called by bibtex-yank. It operates slightly different then. (bibtex-find-text): New optional argument to tell the function if it was called by bibtex-make-field. It moves in this case to the end of the key if it was called on the reference head line. If it is called interactively on the head line, it works in an appropriate manner, too. (bibtex-enclosing-field): New optional argument to tell bibtex-enclosing-field not to print an error message if enclosing field isn't found, but to return nil in this case (t is returned otherwise). This is used by bibtex-find-text such that no error message is given if bibtex-find-text is called interactively in the key line of an entry. (bibtex-autokey-year-use-crossref-entry): New variable to determine if crossreferenced entry should be used for autokey generation, if year field of current entry is absent. (bibtex-generate-autokey): Use this new variable. (bibtex-include-OPTannote): Deleted (is set in bibtex-user-optional-fields). (bibtex-entry, bibtex-print-help-message): Removed support for bibtex-include-OPTannote. (bibtex-entry-format): New constant `inherit-booktitle' allowed. (bibtex-mode): Set value for font-lock-mark-block-function. (bibtex-font-lock-keywords): Changed to distinguish optional from ordinary fields. (bibtex-format-entry, bibtex-print-help-message) (bibtex-remove-OPT-or-ALT, bibtex-pop): Used simpler regexps. (bibtex-delete-field): Changed from bibtex-delete-optional-or-alternative-field. Deletes now mandatory fields as well. (bibtex-mode): Changed documentation. (bibtex-entry-type-history, bibtex-key-history): New variables to use own histories in BibTeX buffers. (bibtex-entry, bibtex-clean-entry, bibtex-String): Use these new variables. (bibtex-entry, bibtex-make-field): A function can now be used to generate a fields init string. (bibtex-include-OPTkey, bibtex-include-OPTannote) (bibtex-entry-field-alist): Changed documentation accordingly. (bibtex-mode): bibtex-parse-keys on start of mode is now abortable, too. (bibtex-entry, bibtex-complete-key, bibtex-String): If bibtex-keys isn't set correctly due to abortion of bibtex-parse-keys, this function is called now non-abortable. (bibtex-entry-field-alist): Small change in comments. (bibtex-find-entry-location): Bug fix: Insertion into completely empty buffer didn't work. (bibtex-user-optional-fields): Renamed from bibtex-mode-user-optional-fields. (bibtex-submit-bug-report, bibtex-entry, bibtex-print-help-message): Use bibtex-user-optional-fields. (bibtex-remove-delimiters): Bug fix: Only remove delimiting braces and not those inside fields. (skip-to-valid-bibtex-entry, bibtex-parse-keys) (bibtex-end-of-entry, bibtex-validate, bibtex-reformat): Calculate complex regexps outside of loops. (bibtex-mode): Changed documentation on how to convert third party buffers. (bibtex-convert-alien): New function to convert a buffer not created by BibTeX mode to a format, whichs enables all features of BibTeX mode. (bibtex-mode): Small bug fix for call to bibtex-parse-keys. (bibtex-mode): Bug fix for using bibtex-parse-keys. (bibtex-mode): Used other policy to initiate the first call of bibtex-parse-keys. This avoids unnecessary double call if Font Lock mode is chosen for buffer at startup. (bibtex-String, bibtex-Preamble): Renamed from bibtex-string and bibtex-preamble. (bibtex-String): If bibtex-maintain-sorted-entries and bibtex-sort-ignore-string-entries are both non-nil, read string key from minibuffer (with completion) and insert entry at correct location (as for normal entries). (bibtex-autokey-titleword-first-ignore) (bibtex-autokey-titleword-abbrevs): Changed documentation: case of regexps doesn't matter anymore. (bibtex-field-const, bibtex-reference-key): Simplified to not contain uppercase letters. (member-of-regexp, assoc-of-regexp): Ignore case of regexp. (map-bibtex-entries): Call function not for every syntactical correct entry, but only for entries with known type. (map-bibtex-entries, skip-to-valid-bibtex-entry) (bibtex-flash-head, bibtex-enclosing-field) (bibtex-enclosing-reference-maybe-empty-head, bibtex-format-entry) (bibtex-autokey-change, bibtex-generate-autokey, bibtex-parse-keys) (bibtex-ispell-abstract, bibtex-sort-buffer) (bibtex-find-entry-location, bibtex-validate, bibtex-remove-delimiters) (bibtex-delete-optional-or-alternative-field, bibtex-pop) (bibtex-clean-entry, bibtex-print-help-message): Make them work regardless of user's value of case-fold-search. (bibtex-generate-autokey): Use bibtex-cfield for generating the year field regexp. (bibtex-parse-keys): Only gather keys of known (and not of syntactical correct) entries. (bibtex-end-of-entry): Only report an "unknown entry" message if called interactively. (bibtex-sort-ignore-string-entries): Renamed back from bibtex-sort-ignore-string-and-preamble. Of course, preambles are always ignored, since they have no key at all. (bibtex-string): Slightly less complex regexp. (skip-to-valid-bibtex-entry): New helper function to skip forward (or backward) to beginning of next syntactical correct known BibTeX entry, if not already there. Respects bibtex-sort-ignore-string-entries. (map-bibtex-entries): Bug fix: It wasn't called for string entries even if bibtex-sort-ignore-string-entries was nil. (beginning-of-last-bibtex-entry): New helper function to go to last entry in buffer. (bibtex-end-of-entry): Bug fix: Now works with string and preamble entries as well. (bibtex-sort-buffer): Renamed from bibtex-sort-entries. Simplified by using new function skip-to-valid-bibtex-entry. Now only known entries are checked. (bibtex-find-entry-location): Simplified by using new functions skip-to-valid-bibtex-entry and beginning-of-last-bibtex-entry. Only known entries are used to determine location. (bibtex-validate): Now checks string entries, too. (bibtex-move-outside-of-entry): Don't use forward-paragraph, but bibtex-end-of-entry. (bibtex-end-of-entry): Don't use forward-sexp anymore, since this fails on entries with non-escaped souble-quotes. Use search-bibtex-reference instead (though it is slower, it is more reliable). (bibtex-ispell-abstract): Use normal regexps created by bibtex-cfield instead of special ones. (beginning-of-first-bibtex-entry): No warning on empty buffer. (bibtex-validate): Bug fix. Syntactical check didn't work, since due to a bug all entries were simply skipped. (bibtex-mode): Doc fix. (bibtex-delete-optional-or-alternative-field): Renamed from bibtex-kill-optional-or-alternative-field. (bibtex-delete-optional-or-alternative-field, bibtex-empty-field): Use delete-region, not kill-region. (bibtex-clean-entry): New second argument called-by-reformat indicates if bibtex-clean-entry was called by reformat. Don't try to find correct buffer position for newly generated key and don't call bibtex-parse-keys in this case. (map-bibtex-entries): Bugfix (missed first entry in buffer, died on entries with `@' in other than first column). (beginning-of-first-bibtex-entry, bibtex-format-entry) (bibtex-beginning-of-entry, bibtex-validate, bibtex-clean-entry): Changed to allow BibTeX entries to start in a column different from 1 (but still for speed reasons only whitespace is allowed prior to the `@' on the same line. (map-bibtex-entries): Call it for known BibTeX entries only. This allows entries as @Comment{...} which follow no specific structure without breaking the validation functions. (bibtex-validate): Check syntactical structure for known entries only. (bibtex-autokey-abbrev): Sped up and changed to allow a length of zero. (bibtex-entry-format): Remove option `month-strings'. (bibtex-validate): If given a prefix argument, check for questionable month fields. (bibtex-generate-autokey): Use normal regexps created by bibtex-cfield instead of special ones. (bibtex-hide-entry-bodies): Sped up by using subst-char-in-region instead of using replace-regexp or replace-match. (bibtex-find-entry-location): A bug had been introduced by using search-bibtex-reference instead of re-search-forward (fixed). (bibtex-field-delimiters): Renamed from bibtex-field-delimiter. (bibtex-entry-format): Constant empty-opts renamed to empty-opts-or-alts. (bibtex-remove-delimiters): Renamed from bibtex-remove-double-quotes-or-braces. (bibtex-reformat): New function. (bibtex-fill-entry): New function to refill entry. (bibtex-mode-map): Defined key for bibtex-fill-entry. (bibtex-field-delimiter): Substitutes variables bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-field-left-delimiter, bibtex-field-right-delimiter): New helper functions. (bibtex-make-field, bibtex-pop): Use new variable bibtex-field-delimiter. (bibtex-empty-field, bibtex-string): Use new functions bibtex-field-left-delimiter and bibtex-field-right-delimiter. (bibtex-predefined-month-strings): New variable. (bibtex-predefined-strings): Use bibtex-predefined-month-strings. (bibtex-submit-bug-report): Use new variables bibtex-field-delimiter and bibtex-predefined-month-strings. (bibtex-entry-format): Substitutes variable bibtex-clean-entry-zap-empty-opts-or-alts. Various types of formatting options are available (see variable documentation). (bibtex-format-entry): New function doing the formatting of entries. Taken from bibtex-clean-entry and enhanced to support new variable bibtex-entry-format. (delete-whitespace): New helper function used by bibtex-format-entry. (bibtex-clean-entry): Call new function bibtex-format-entry. (bibtex-submit-bug-report): Use bibtex-entry-format instead of bibtex-clean-entry-zap-empty-opts-or-alts. (bibtex-do-auto-fill): New function to perform auto-filling in BibTeX mode. In fact, this is the old function bibtex-auto-fill-function. (bibtex-mode): Don't set fill-prefix anymore, but use new function bibtex-do-auto-fill. (bibtex-find-entry-location): Fixed bug (when bibtex-maintain-sorted-entries was non-nil, an entry with a key greater than all other keys wasn't inserted in the correct place). (bibtex-mode): Don't use bibtex-auto-fill-function anymore, but use directly variable fill-prefix. (bibtex-find-entry-location): Fixed bug (on duplicate keys, point must move to beginning of entry, so that bibtex-entry works correctly). (bibtex-complete): Fixed bug (parameter string-list was mistakenly altered by the function itself). (bibtex-mode-map): Bind bibtex-complete-key to C-TAB. (bibtex-validate): Renamed from bibtex-validate-buffer since it can acts on region if active. Use search-bibtex-reference. (search-bibtex-reference): New function to be used in places where prior a re-search-{forward|backward} for bibtex-reference or something alike was used. This function is necessary due to the new limit of failure stack size in 19.32 and above. (bibtex-enclosing-reference-maybe-empty-head) (bibtex-sort-entries, bibtex-find-entry-location, bibtex-validate): Use new function search-bibtex-reference. (bibtex-pop, bibtex-clean-entry): Small change due to change in bibtex-enclosing-reference-maybe-empty-head. (bibtex-reference-infix, bibtex-reference-postfix): New constants necessary due to splitting bibtex-reference. (bibtex-reference): Deleted. (bibtex-type-in-reference, skip-whitespace-and-comments): Deleted. (bibtex-mode): Don't turn auto-fill-mode on. Use new variable normal-auto-fill-function. (bibtex-field-string): Simplified. (bibtex-mode-syntax-table): Changed syntax of double-quote back to quote syntax. (bibtex-complete): New generic function for interface functions bibtex-complete-string and bibtex-complete-key. (bibtex-complete-key): New function. (bibtex-sort-ignore-string-and-preamble): Renamed from bibtex-sort-ignore-string-entries. (map-bibtex-entries): Use bibtex-sort-ignore-string-and-preamble and ignore preamble entries as well. (bibtex-mode, bibtex-submit-bug-report, bibtex-sort-entries): Use bibtex-sort-ignore-string-and-preamble. (bibtex-count-entries): New function to count entries in buffer or region. (bibtex-comma-after-last-field): New variable to decide if comma should be inserted at end of last field. (bibtex-entry): Support new variable bibtex-comma-after-last-field. (bibtex-field-indentation, bibtex-text-indentation): Two new user options (replacing the former constants bibtex-field-alignment and bibtex-text-alignment). (bibtex-align-at-equal-sign): New user option. (bibtex-auto-fill-function, bibtex-make-field) (bibtex-remove-OPT-or-ALT, bibtex-clean-entry): Support new variables. (bibtex-validate-buffer): Now only checks region if mark is active. With optional argument checks if required fields are missing, too. (bibtex-mode): Added support for imenu. (bibtex-entry-field-alist) (bibtex-mode-user-optional-fields): Modified syntax to allow preinitialization of fields. (bibtex-make-field, bibtex-make-optional-field): Support preinitialization of fields. (bibtex-autokey-prefix-string) (bibtex-autokey-preserve-case): New variables to support bibtex-generate-autokey. (bibtex-generate-autokey): Use new variables. (bibtex-field-const, bibtex-reference-type) (bibtex-reference-key): Changed to match the (according to Oren Patashnik) allowed characters. (bibtex-clean-entry-zap-empty-opts-or-alts): Renamed from bibtex-clean-entry-zap-empty-opts. (bibtex-entry-field-alist): Slightly modified syntax to support alternative fields needed for Book and InBook references. (bibtex-font-lock-keywords, bibtex-print-help-message) (bibtex-make-field, bibtex-pop, bibtex-clean-entry): Support ALT prefixed entries. (bibtex-mode): Documented new ALT prefixed fields. (bibtex-make-optional-field): Modified to give only field name as arg to bibtex-make-field. (bibtex-remove-OPT-or-ALT, bibtex-kill-optional-or-alternative-field): Renamed from bibtex-remove-OPT and bibtex-kill-optional-field, respectively. Modified to support ALT prefixes. (bibtex-enclosing-field, bibtex-print-help-message): Speed up things by not using bibtex-enclosing-regexp anymore. (bibtex-enclosing-regexp): Function deleted.
1997-06-10 17:58:43 +00:00
(indent-to-column bibtex-entry-offset)
Long overdue merge. Don't require `compile' since it seems unnecessary. For all internal variables and functions the docstring comments have been converted into proper docstrings (bibtex-maintainer-address, bibtex-maintainer-salutation) (bibtex-version): Remove support for bug reporting. (bibtex-field-delimiters, bibtex-entry-delimiters) (bibtex-sort-ignore-string-entries, bibtex-maintain-sorted-entries) Replace make-variable-buffer-local by make-local-variable for (bibtex-entry-format): New tag `required-fields'. (bibtex-maintain-sorted-entries): New var. (bibtex-sort-entry-class, bibtex-sort-entry-class-alist): New vars. (bibtex-predefined-month-strings, bibtex-predefined-strings): Make into alists with pairs (abbreviation expansion). (bibtex-autokey-titleword-change-strings) (bibtex-autokey-transcriptions): Make into alists. Add new replacement pairs. (bibtex-autokey-use-crossref): New var. Replace bibtex-autokey-year-use-crossref-entry because updated code for autokey generation handles crossrefs independently of particular fields. (bibtex-reference-key, bibtex-mode-syntax-table): Remove = because it can't be part of a string's key. (bibtex-complete-key-cleanup): New var. (bibtex-complete): Merge bibtex-complete-string and bibtex-complete-key into it (and bind to M-tab). (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-quoted-string-re): New vars. (bibtex-field-name-for-parsing): Don't make-variable-buffer-local. (zmacs-regions): Declare to quieten the byte-compiler. (bibtex-comment-start): Don't include the space. (bibtex-font-lock-syntactic-keywords): New var. (bibtex-font-lock-keywords): Remove the entry for @Comment. (bibtex-parse-field-string): Merge the functionality of bibtex-parse-field-string-braced, bibtex-parse-quoted-string and bibtex-parse-field-string-quoted. (bibtex-search-forward-field-string): Remove. (bibtex-parse-association): Use when. (bibtex-parse-field-name): Use when. (bibtex-parse-field-text): Use when and cond. (bibtex-parse-field): Use let. (bibtex-search-forward-field, bibtex-search-backward-field): Make bound optional, use let, setq, and cddr. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field): Use nth. (bibtex-name-in-field, bibtex-text-in-field-bounds) (bibtex-text-in-field, bibtex-type-in-head, bibtex-key-in-head) (bibtex-text-in-string): New functions. (bibtex-reference-key-in-string): New fun. Merge of bibtex-start-of-reference-key-in-string and bibtex-end-of-reference-key-in-string. (bibtex-parse-string-prefix): Use let and when. (bibtex-parse-string-postfix): Use when. (bibtex-search-forward-string, bibtex-search-backward-string): Use save-excursion and setq. (bibtex-member-of-regexp): Use let. (bibtex-assoc-of-regexp): Use caar und let. (bibtex-skip-to-valid-entry): Return buffer position. (bibtex-map-entries): Use save-excursion. (bibtex-progress-message): Simplify. (bibtex-search-entry): Use skip-chars-forward, when, save-match-data. (bibtex-move-outside-of-entry): Handle the case that point is before first entry. (bibtex-enclosing-field): Use save-excursion, when. (bibtex-format-field-delimiters): Merge into bibtex-format-entry. (bibtex-enclosing-entry-maybe-empty-head): Simplify. (bibtex-format-entry): Simplify. Handle new tag required-fields of bibtex-entry-format. (bibtex-autokey-abbrev): Accept negative values of len. (bibtex-autokey-get-field, bibtex-autokey-demangle-title): New funs. (bibtex-autokey-get-namefield, bibtex-autokey-get-namelist) (bibtex-autokey-get-yearfield-digits, bibtex-autokey-get-yearfield) (bibtex-autokey-get-titlestring): Remove. (bibtex-autokey-get-names): Simplify. (bibtex-autokey-get-titles): Rename to bibtex-autokey-get-title. (bibtex-autokey-demangle-name): Simplify, avoid error messages. (bibtex-generate-autokey): Simplify. (bibtex-parse-keys): Simplify, use push. (bibtex-parse-strings): New fun similar to bibtex-parse-keys. (bibtex-string-files-init): New fun. (bibtex-parse-buffers-stealthily): Use bibtex-parse-keys, bibtex-string-files-init and bibtex-parse-strings. (bibtex-complete): Rename to bibtex-complete-internal, use push, bibtex-reference-key-in-string, no sorting. (bibtex-complete-string-cleanup): New fun, displays expansion of completed strings. (bibtex-choose-completion-string): New fun. Required for choose-completion-string-functions. (bibtex-do-auto-fill): Remove. Set fill-prefix in bibtex-mode. (bibtex-pop): Simplify. (bibtex-mode): Move setting of bibtex-string to bibtex-parse-strings. Set choose-completion-string-functions. (bibtex-print-help-message,bibtex-make-field, bibtex-end-of-entry) (bibtex-count-entries): Simplify. (bibtex-entry-index, bibtex-lessp): New funs for generalized sorting scheme of indices, see bibtex-maintain-sorted-entries. (bibtex-sort-buffer): Use bibtex-lessp for sorting. (bibtex-find-crossref, bibtex-find-entry): New funs. (bibtex-find-entry-location): Rename to bibtex-prepare-new-entry, use bibtex-lessp, Simplify. (bibtex-validate): Simplify. Fixe bug of internal variable questionable-month. (bibtex-remove-OPT-or-ALT): Use when. (bibtex-remove-delimiters, bibtex-kill-field, bibtex-kill-entry) (bibtex-clean-entry, bibtex-fill-entry, bibtex-reformat): Simplify. (bibtex-convert-alien): Use deactivate-mark rather than the non-existent bibtex-mark-active variable. (bibtex-complete-string, bibtex-complete-key): Merge into new `smart' defun bibtex-complete. (bibtex-String): Update for new sorting scheme, distinguish empty and non-empty key strings.
2003-06-02 22:30:09 +00:00
(insert "@Preamble"
(bibtex-entry-left-delimiter)
(bibtex-field-left-delimiter))
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
(let ((endpos (point)))
(bibtex-expand-strings) (bibtex-autokey-expand-string, bibtex-name-part) (bibtex-entry-type-whitespace, bibtex-entry-type-str) (bibtex-any-entry-maybe-empty-head, bibtex-string-type) (bibtex-preamble-prefix, bibtex-string-empty-key): New variables. (bibtex-entry-type, bibtex-entry-head): Match only valid entries. (bibtex-entry-postfix, bibtex-known-entry-type-re) (bibtex-valid-entry-re, bibtex-any-valid-entry-re) (bibtex-valid-entry-whitespace-re, bibtex-empty-field-re) (bibtex-field-name-for-parsing, bibtex-remove-delimiters-string) (bibtex-beginning-of-last-entry): Remove. (bibtex-parse-field-name): Use bibtex-field-name. Issue error message if comma is missing but buffer is read-only. (bibtex-parse-field-text): Handle whitespaces at the end of field text. Return 3-element list with beginning and end of field text and end of field. (bibtex-end-of-text-in-field, bibtex-end-of-field): Change accordingly. (bibtex-parse-field): Remove arg name. Use bibtex-field-name. (bibtex-search-forward-field, bibtex-search-backward-field): Search always delimited by limits of entry. Use more efficient search algorithms. (bibtex-name-in-field): Use bibtex-start-of-name-in-field and bibtex-end-of-name-in-field. (bibtex-text-in-field-bounds): Handle BibTeX strings when extracting the content of a field. (bibtex-text-in-field): Use search limits. (bibtex-parse-string-prefix): Handle empty string keys based on bibtex-string-empty-key. (bibtex-parse-string): Fix docstring. (bibtex-text-in-string): Use bibtex-text-in-field-bounds. (bibtex-preamble-prefix, bibtex-strings): New functions. (bibtex-skip-to-valid-entry): Include preceding whitespace in BibTeX entries (consistent with other BibTeX functions). (bibtex-map-entries): Use bibtex-skip-to-valid-entry. (bibtex-search-entry): Fix docstring. Simplify. (bibtex-flash-head, bibtex-complete-string-cleanup) (bibtex-count-entries, bibtex-sort-buffer): Simplify. (bibtex-beginning-of-first-entry): Use bibtex-skip-to-valid-entry. (bibtex-parse-entry): New optional arg content. (bibtex-format-entry, bibtex-autofill-entry, bibtex-url): Use it. Use bibtex-text-in-field-bounds. (bibtex-print-help-message): Handle BibTeX strings and preambles. (bibtex-end-of-entry): Use bibtex-preamble-prefix and bibtex-parse-string-postfix. (bibtex-find-text-internal): New function. (bibtex-remove-delimiters): Use it. (bibtex-find-text): Use it. New optional arg help. (bibtex-complete): Handle BibTeX string and preamble entries. (bibtex-Preamble): Fix order of closing delimiters.
2005-12-14 17:15:20 +00:00
(insert (bibtex-field-right-delimiter)
(bibtex-entry-right-delimiter)
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> * textmodes/bibtex.el (bibtex-sort-entry-class): new entry catch-all. (bibtex-sort-ignore-string-entries): default value t. (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix docstring, add # as one of the chars to crush (bibtex-autokey-prefix-string, bibtex-autokey-names) (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) (bibtex-autokey-name-change-strings) (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) (bibtex-autokey-name-separator, bibtex-autokey-year-length) (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) (bibtex-autokey-title-terminators) (bibtex-autokey-titlewords-stretch) (bibtex-autokey-titleword-ignore) (bibtex-autokey-titleword-case-convert) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-abbrevs) (bibtex-autokey-titleword-change-strings) (bibtex-autokey-titleword-length) (bibtex-autokey-titleword-separator) (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix docstring. (bibtex-strings, bibtex-reference-keys): Use lazy-completion-table and make-variable-buffer-local. (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. (bibtex-parse-field-string): Use syntax table and forward-sexp. (bibtex-parse-association): Simplify. (bibtex-parse-field-name): Obey bibtex-autoadd-commas. (bibtex-parse-field-text): Simplify. (bibtex-search-forward-field, bibtex-search-backward-field): argument BOUND can take value t. (bibtex-start-of-field, bibtex-start-of-name-in-field) (bibtex-end-of-name-in-field, bibtex-end-of-field) (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of beginning and end of entry. (bibtex-enclosing-field): Simplify. (bibtex-format-entry): Use booktitle to set a missing title. (bibtex-autokey-get-names): Fiddle with regexps. (bibtex-generate-autokey): Use identity. (bibtex-parse-keys): Use simplified parsing algorithm if bibtex-parse-keys-fast is non-nil. Simplify. Change order of arguments. Return alist of keys. (bibtex-parse-strings): Simplify. Return alist of strings. (bibtex-complete-string-cleanup): Fix docstring. (bibtex-read-key): New function. (bibtex-mode): Fix docstring. Do not parse for keys and strings when the mode is entered. Set fill-paragraph-function to bibtex-fill-field. Setup font-lock-mark-block-function the way font-lock intended. (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. (bibtex-parse-entry, bibtex-autofill-entry): New functions. (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) (bibtex-Preamble): Avoid hard coded constants. (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries.
2003-07-05 12:41:24 +00:00
"\n")
(goto-char endpos)))
(defun bibtex-url (&optional pos no-browse)
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
"Browse a URL for the BibTeX entry at point.
Optional POS is the location of the BibTeX entry.
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
The URL is generated using the schemes defined in `bibtex-generate-url-list'
\(see there\). If multiple schemes match for this entry, or the same scheme
matches more than once, use the one for which the first step's match is the
closest to POS. The URL is passed to `browse-url' unless NO-BROWSE is t.
Return the URL or nil if none can be generated."
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
(interactive)
(unless pos (setq pos (point)))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(save-excursion
(goto-char pos)
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(bibtex-beginning-of-entry)
(let ((end (save-excursion (bibtex-end-of-entry)))
(fields-alist (save-excursion (bibtex-parse-entry t)))
Use `button's. (bibtex-autokey-transcriptions): Translate TeX `\ ' to space. (bibtex-reference-keys): Distinguish between header keys and crossref keys. (bibtex-beginning-of-field): New function. (bibtex-url-map): Remove. (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref. (bibtex-font-lock-url-regexp): Assume that field names begin at the beginning of a line. (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field. Remove field delimiters. Bugfix, point can be inside a field with a url. Use bibtex-beginning-of-field. (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button): New funs. (bibtex-mark-active, bibtex-run-with-idle-timer): Remove. (bibtex-key-in-head): Simplify. (bibtex-current-line): Use bolp. (bibtex-parse-keys): Remove unused arg `add'. Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-parse-entry, bibtex-autofill-entry): Use bibtex-type-in-head and bibtex-key-in-head. (bibtex-autokey-get-field): Do not alter case of replacement text. (bibtex-autokey-get-names): Do all processing of name list. (bibtex-autokey-get-year): New function. (bibtex-autokey-get-title): Do all processing of title words. (bibtex-generate-autokey): Simplify. (bibtex-string-files-init): Use default-directory. Allow for absolute file names in bibtex-string-files. (bibtex-files, bibtex-file-path): New variables. (bibtex-files-expand): New function. (bibtex-find-entry-globally): New command. (bibtex-summary-function): New variable. (bibtex-summary): Default value of bibtex-summary-function. (bibtex-find-crossref): New optional args pnt and split. (bibtex-complete-key-cleanup): Call bibtex-summary-function. (bibtex-copy-summary-as-kill): New command bound to C-cC-t. (bibtex-validate): Fix docstring. Check only abbreviated month fields. Fix handling of required and alternative fields. Identify duplicate keys even if bibtex-maintain-sorted-entries is nil. Use cons and display-buffer. (bibtex-validate-globally): New command. (bibtex-clean-entry): Use bibtex-files-expand. Do not call bibtex-parse-keys and bibtex-parse-strings for updating bibtex-reference-keys and bibtex-strings. (bibtex-realign): Remove blank lines past the last entry. (bibtex-reformat): Use bibtex-entry-format as default. (bibtex-choose-completion-string): Remove. (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify.
2004-10-31 22:25:34 +00:00
;; Always ignore case,
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
(case-fold-search t)
text url scheme obj fmt fl-match step)
;; The return value of `bibtex-parse-entry' (i.e., FIELDS-ALIST)
;; is always used to generate the URL. However, if the BibTeX
;; entry contains more than one URL, we have multiple matches
;; for the first step defining the generation of the URL.
;; Therefore, we try to initiate the generation of the URL
;; based on the match of `bibtex-font-lock-url' that is the
;; closest to POS. If that fails (no match found) we try to
;; initiate the generation of the URL based on the properly
;; concatenated CONTENT of the field as returned by
;; `bibtex-text-in-field-bounds'. The latter approach can
;; differ from the former because `bibtex-font-lock-url' uses
;; the buffer itself.
(while (bibtex-font-lock-url end t)
(push (list (bibtex-dist pos (match-beginning 0) (match-end 0))
(match-beginning 0)
(buffer-substring-no-properties
(match-beginning 0) (match-end 0)))
fl-match)
;; `bibtex-font-lock-url' moves point to end of match.
(forward-char))
(when fl-match
(setq fl-match (car (sort fl-match (lambda (x y) (< (car x) (car y))))))
(goto-char (nth 1 fl-match))
(bibtex-beginning-of-field) (re-search-backward ",")
(let* ((bounds (bibtex-parse-field))
(name (bibtex-name-in-field bounds))
(content (bibtex-text-in-field-bounds bounds t))
(lst bibtex-generate-url-list))
;; This match can fail when CONTENT differs from text in buffer.
(when (string-match (regexp-quote (nth 2 fl-match)) content)
;; TEXT is the part of CONTENT that starts with the match
;; of `bibtex-font-lock-url' we are looking for.
(setq text (substring content (match-beginning 0)))
(while (and (not url) (setq scheme (pop lst)))
;; Verify the match of `bibtex-font-lock-url' by
;; comparing with TEXT.
(when (and (bibtex-string= (caar scheme) name)
(string-match (cdar scheme) text))
(setq url t scheme (cdr scheme)))))))
;; If the match of `bibtex-font-lock-url' was not approved
;; parse FIELDS-ALIST, i.e., the output of `bibtex-parse-entry'.
(unless url
(let ((lst bibtex-generate-url-list))
(while (and (not url) (setq scheme (pop lst)))
(when (and (setq text (cdr (assoc-string (caar scheme)
fields-alist t)))
(string-match (cdar scheme) text))
(setq url t scheme (cdr scheme))))))
(when url
(setq url (if (null scheme) (match-string 0 text)
(if (stringp (car scheme))
(setq fmt (pop scheme)))
(dotimes (i (length scheme))
(setq step (nth i scheme))
;; The first step shall use TEXT as obtained earlier.
(unless (= i 0)
(setq text (cdr (assoc-string (car step) fields-alist t))))
(if (string-match (nth 1 step) text)
(push (cond ((functionp (nth 2 step))
(funcall (nth 2 step) text))
((numberp (nth 2 step))
(match-string (nth 2 step) text))
(t
(replace-match (nth 2 step) t nil text)))
obj)
;; If SCHEME is set up correctly,
;; we should never reach this point
(error "Match failed: %s" text)))
(if fmt (apply 'format fmt (nreverse obj))
(apply 'concat (nreverse obj)))))
(if (called-interactively-p 'interactive) (message "%s" url))
(unless no-browse (browse-url url)))
(if (and (not url) (called-interactively-p 'interactive))
(message "No URL known."))
url)))
(bibtex-mark-active, bibtex-run-with-idle-timer): Move `if' inside the defun. (bibtex-autokey-titleword-ignore): Regexp is used in a case insensitive env. (bibtex-mode-map): Rearrange order of menus. (bibtex-quoted-string-re): Obsolete. (bibtex-complete-key-cleanup): Variable replaced by new function. (bibtex-font-lock-keywords): Use backquotes. (bibtex-font-lock-url-regexp): New internal variable. (bibtex-name-in-field): New opt arg remove-opt-alt to remove "OPT" and "ALT". (bibtex-insert-current-kill, bibtex-make-field) (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless. (bibtex-parse-field-text): Simplify. (bibtex-string=): New helper function. (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title. (bibtex-map-entries): Use bibtex-string=. (bibtex-search-entry): Use not. (bibtex-enclosing-field): Fix docstring. (bibtex-assoc-regexp): Obsolete. (bibtex-format-entry): Use assoc-string and bibtex-string=. (bibtex-autokey-get-names): Handle empty name field. (bibtex-parse-strings): Use assoc-string and unless. (bibtex-complete-string-cleanup): Expansion list is passed as an argument. Use assoc-string. (bibtex-pop): Simplify. (bibtex-mode): Set font-lock-extra-managed-props. (bibtex-entry-update): Use assoc-string. (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD. (bibtex-autofill-entry): Use bibtex-string=. (bibtex-print-help-message): Simplify. (bibtex-find-entry): New optional arg START. (bibtex-validate): Use bibtex-string= and assoc-string. Do not call obsolete function compilation-parse-errors. (bibtex-remove-delimiters): Only remove delimiters if present. (bibtex-copy-entry-as-kill): Add docstring. (bibtex-clean-entry): Use bibtex-string=. Handle empty keys. Detect duplicate keys if bibtex-maintain-sorted-entries is nil. (bibtex-complete): Use bibtex-predefined-month-strings, bibtex-string=, and new function bibtex-complete-key-cleanup. (bibtex-generate-url-list): New variable. (bibtex-url): New command bound to C-c C-l and mouse-2. (bibtex-url-map): New local keymap for bibtex-url-mouse. (bibtex-font-lock-url): New function.
2004-09-10 21:24:50 +00:00
1991-05-09 21:50:45 +00:00
;; Make BibTeX a Feature
(bibtex-string, bibtex-preamble): Use forward-line. (sort-subr): Don't call autload for this--that's done in loaddefs.el. (bibtex-mode): Add autoload cookie. Changed keybinding for bibtex-print-help-message (from \C-ch to \C-c?). Therefore, describe-mode is not longer on \C-c?. Also, changed prefix \C-cn for bibtex-narrow functions to \C-c\C-r. (bibtex-string-files): Changed documentation. (bibtex-mode-map): Inscriptions of menu bar changed from "Entry Types" to "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit". (bibtex-string-files): Changed documentation. (bibtex-mode): If environment variable BIBINPUTS isn't defined, string files are searched in the current directory. (bibtex-completion-candidates): Now buffer-local to allow evaluation of different bibtex-string-files in different buffers. (bibtex-autokey-edit-before-use, bibtex-clean-entry): New variable that determines, if the user is allowed to edit auto-generated reference keys before they are used. (bibtex-generate-autokey, bibtex-clean-entry): New function to generate an autokey if necessary. (bibtex-autokey-names, bibtex-autokey-name-change-strings, bibtex-autokey-name-length, bibtex-autokey-name-separator, bibtex-autokey-year-length, bibtex-autokey-titlewords, bibtex-autokey-title-terminators, bibtex-autokey-titlewords-stretch, bibtex-autokey-titleword-first-ignore, bibtex-autokey-titleword-abbrevs, bibtex-autokey-titleword-change-strings, bibtex-autokey-titleword-length, bibtex-autokey-titleword-separator, bibtex-autokey-name-year-separator, bibtex-autokey-year-title-separator): New variables related to bibtex-generate-autokey. (bibtex-find-entry-location): Optional second parameter maybedup to tell it that entering a duplicate entry isn't to report by an error but by the return value of the function (necessary for bibtex-clean-entry to find the correct position of an entry with an autogenerated key without disturbing the user with unwanted messages). (bibtex-help-message): New variable to avoid printing of help messages in the echo area. (assoc-of-regexp): New function to match an alist of regexps. (bibtex-string-files, bibtex-completion-candidates, bibtex-mode): New variables to allow bibtex-complete-string to work on strings initialized from a variable and from @String definitions in a list of files, too. (bibtex-predefined-strings, bibtex-entry-field-alist): Changed to user options. (bibtex-mode): Changed doc string. (many functions and variables): Changed documentation strings of variables and functions to hold a complete sentence in the first line. (bibtex-print-help-message): Now line dependent and reports if it is called outside a BibTeX field. (validate-bibtex-buffer): Completely rewritten to validate, if buffer is syntactically correct. (find-bibtex-duplicates): Moved into validate-bibtex-buffer. (ispell-abstract, bibtex-ispell-abstract, ispell-bibtex-entry, bibtex-ispell-entry, beginning-of-bibtex-entry, bibtex-beginning-of-entry, end-of-bibtex-entry, bibtex-end-of-entry, hide-bibtex-entry-bodies, bibtex-hide-entry-bodies, narrow-to-bibtex-entry, bibtex-narrow-to-entry, sort-bibtex-entries, bibtex-sort-entries, validate-bibtex-buffer, bibtex-validate-buffer, find-bibtex-entry-location, bibtex-find-entry-location): All interactive functions are renamed, so that any interface function begins with "bibtex-". Mapping: ispell-abstract --> bibtex-ispell-abstract ispell-bibtex-entry --> bibtex-ispell-entry beginning-of-bibtex-entry --> bibtex-beginning-of-entry end-of-bibtex-entry --> bibtex-end-of-entry hide-bibtex-entry-bodies --> bibtex-hide-entry-bodies narrow-to-bibtex-entry --> bibtex-narrow-to-entry sort-bibtex-entries --> bibtex-sort-entries validate-bibtex-buffer --> bibtex-validate-buffer find-bibtex-entry-location --> bibtex-find-entry-location (bibtex-maintain-sorted-entries, bibtex-sort-ignore-string-entries): Default is now t. (bibtex-complete-string): String list is built from additional string list bibtex-predefined-string and current strings in file. (string-equalp): Deleted and substituted by string-equal. (assoc-string-equalp): Renamed to assoc-ignore-case. (bibtex-entry): Reference key can be entered with completion. All reference keys that are defined in buffer and all labels that appear in crossreference entries are object to completion. (Entry types): Changed order of entries in menu "entry types". (bibtex-entry-field-alist): Changed order of entries slightly to be more conform with standard BibTeX style layouts. (bibtex-mode-map): Uniform keybindings for \C-c\C-e prefix (often used types on control keys, sometimes used types on normal keys, rarely used types on shift keys, almost never used types on meta keys). (bibtex-mode-map): Function narrow-to-bibtex-entry and counterpart widen and function hide-bibtex-entry-bodies and counterpart show-all bounded to appropriate local keys. (bibtex-abbrev-table): Deleted (bibtex-current-entry-label, put-string-on-kill-ring): Deleted (AUCTeX provides all the functionality needed for citation completion). (bibtex-enclosing-reference, bibtex-pop-previous, bibtex-pop-next, bibtex-clean-entry): Hacked for speed (bibtex-pop-previous and bibtex-pop-next were to slow for larger BibTeX files). (bibtex-pop-previous, bibtex-pop-next): Delimiters from previous or next entry are changed to actual delimters if necessary. (bibtex-entry): Fixed bug (False entry wasn't reported in error message if bibtex-entry was called with undefined reference name). (bibtex-entry-field-alist, bibtex-entry, bibtex-make-field, bibtex-next-field, bibtex-clean-entry): Every reference entry now contains a comment in addition to the name of the reference. This comment appears in the echo area if you start editing that field (after calling bibtex-next-field). (bibtex-include-OPTcrossref, bibtex-entry): Changed bibtex-include-OPTcrossref from single boolean variable to hold a list of reference names which should have a crossref field. (bibtex-complete-word): New function, which completes word fragment before point to the longest prefix of predefined strings in the buffer in the same way that ispell-complete-word operates for words found in the dictionary. (bibtex-reference-head): Start of bibtex-reference-head changed from "^[ \t]*\\(" to "^\\( \\|\t\\)*\\(" (bibtex-pop-previous and bibtex-pop-next didn't work, probably due to a bug in re-search-forward). (several functions): Added support for {} as field delimiters (better than '"' for accented characters. (bibtex-clean-entry): If optional field crossref is empty or missing, former optional fields (if bibtex-include-OPTcrossref was t) are necessary again. bibtex-clean-entry complains if they are empty but not if they are missing, so you can intenionally omit them, e. g. for a pseudo @Journal entry (needed for crossreferences) made out of an @article with missing non-optional fields. Menu bar entries aren't centered anymore.
1994-12-23 04:18:29 +00:00
(provide 'bibtex)
1991-05-09 21:50:45 +00:00
;; arch-tag: ee2be3af-caad-427f-b42a-d20fad630d04
;;; bibtex.el ends here