2009-07-13 Joost Kremers * ebib.el (ebib-search-crossref): new. (ebib-entry-summary): modified to use with-help-window instead of with-output-to-temp-buffer. 2009-07-12 Joost Kremers * ebib.el (ebib-push-bibtex-key): renamed from ebib-push-entry-key in accordance with ebib-insert-bibtex-key. (ebib-insertion-commands): new. (ebib-insertion-strings): removed. 2008-08-01 Joost Kremers * ebib.el (ebib-entry-types-hash): removed. (ebib-set-entry-types-hash): removed. (ebib-set-unique-field-list): new. (ebib-get-obl-fields): modified to use ebib-entry-types directly, rather than the (now defunct) ebib-entry-types-hash. (ebib-get-opt-fields): same. (ebib-find-bibtex-entries): same. (ebib-edit-entry-type): same. 2008-06-15 Joost Kremers * ebib.el (ebib-read-string): bug fix: ebib would choke on bibtex entries that have a space after the entry type but before the opening parenthesis/brace. bug reported and fix provided by Rupert Swarbrick. 2008-05-31 Joost Kremers * ebib.el (ebib-index-window-size): "key buffer" in the doc string changed to "index buffer". 2008-05-30 Joost Kremers * ebib.el (ebib-call-file-viewer): modified to use file-name-extension. is probably a safer bet that what i used before: (last1 (split-string file "\\.")). 2008-05-21 Joost Kremers * ebib.el (ebib-add-entry): bugfix: moved the code that creates the hash table up, so that it appears before ebib-display-entry. 2008-04-21 Joost Kremers * ebib.el: fixed doc strings. 2008-04-20 Joost Kremers * ebib.el (ebib-entry-summary): modified: if the ebib buffers are visible, instead of putting the output in a temp buffer, the relevant entry is displayed in the ebib buffers. (ebib) help mode removed. (ebib-show-log): modified: in split-frame layout the window's dedicated flag must be temporarily unset in order to switch to the strings-buffer. (ebib-quit-log-buffer): same. (ebib-set-index-highlight): modified: move cursor to beginning of line after setting the highlight. (ebib-set-fields-highlight): same. (ebib-set-strings-highlight): same. (ebib-edit-entry): removed goto-char and switch-to-buffer. (line-number-at-pos): this is called line-number in xemacs, so an alias is defined. (ebib-match-paren-forward): added "" to error, to keep xemacs from complaining. (ebib-match-quote-forward): same. (ebib-setup-windows): added delete-other-windows in full-frame layout. (ebib-export-to-db): modified to use gensym. (ebib-export-to-file): same. 2008-04-19 Joost Kremers * ebib.el (ebib-pre-ebib-window): new. (ebib-setup-windows): added ebib-pre-ebib-window. (ebib-quit): added ebib-pre-ebib-window. (ebib-lower): modified to use ebib-pre-ebib-window. (ebib-edit-entry-type): modified to use ebib-layout. (ebib-edit-crossref): same. (ebib-fill-entry-buffer): added skip-chars-forward: the cursor usually appears directly after the field name. (ebib-edit-crossref): modified to make the crossref field the current field again. (ebib-redisplay-current-field): same. (ebib-temp-window): new. (ebib-leave-multiline-edit): removed. (ebib-leave-multiline-edit-buffer): new. (ebib-quit-multiline-edit): new. (ebib-cancel-multiline-edit): modified to use ebib-leave-multiline-edit-buffer. (ebib-edit-multiline-field): modified to use ebib-temp-window. (ebib-edit-multiline-string): same. (ebib-multiline-edit): modified: sets the buffer's modified flag to nil. (ebib-edit-strings): modified: in split-frame layout the window's dedicated flag must be temporarily unset in order to switch to the strings-buffer. (ebib-quit-strings-buffer): same. 2008-04-19 Joost Kremers * ebib.el (ebib): added nil as second argument (norecord) to select-window. (ebib-setup-windows): modified. now uses ebib-layout to choose the desired window layout. (ebib-delete-window): removed. i really don't think we need this. (ebib-lower): removed call to ebib-delete-windows. (ebib-quit): modified: put all the kill-buffers into a mapc. (ebib-select-other-window): removed. (ebib-leave-ebib-windows): new. bound to "z" and "C-xb". (ebib-lower): modified: now simply leaves the ebib buffers if requested. rebound to "Z". 2008-04-18 Joost Kremers * ebib.el (ebib-search-next): changed $ in search string to space: with ebib-index-display-fields, index entries now have a space after the entry key. (ebib-call-file-viewer): new. (ebib-file-regexp): added a space to the regexp. (!) (ebib-browse-url-in-field): changed the doc string. (ebib-view-file-in-field): new. (ebib-view-file-in-field): new. bound to 'f' in the entry buffer. (ebib-file-associations): changed default value: paths removed from the programs, as start-process searches the user's PATH. 2008-04-17 Joost Kremers * ebib.el (ebib-view-file): new. bound to 'f' in the index buffer. (which means that 'f' is no longer bound to ebib-print-filename. 2008-04-11 Joost Kremers * ebib.el (ebib-layout): new. * ebib.el (ebib-add-entry): used ebib-display-entry to insert the new entry in the buffer. 2008-04-11 Joost Kremers * ebib.el (ebib-add-entry): inserted a space in the format string that puts the new entry key into the buffer. this way ebib-set-index-highlight doesn't put the end of the highlight at the next line. 2008-03-26 Morgan Veyret * ebib.el (ebib): changed to check if ebib is visible already. window setup moved to ebib-setup-windows. (ebib-setup-windows): new. (ebib-delete-windows): new. (ebib-select-other-window): new. Bound to C-xb. (ebib-quit-entry-buffer): use get-buffer-window to find the index buffer. (ebib-entry-summary): modified to direct output to *Ebib-entry* buffer. 2008-03-26 Joost Kremers * ebib.el (ebib-index-mode): set truncate-lines to t, which works better if ebib-index-dislay-fields is set. (ebib-set-index-highlight): changed so that it highlights the entire line if ebib-index-display-fields is set. 2008-03-25 Joost Kremers * ebib.el (ebib-additional-fields): added 'file' to the default value. (ebib-url-regexp): changed doc string. (ebib-standard-file-field): new. (ebib-file-associations): new. (ebib-file-regexp): new. (ebib-file-search-dirs): new. 2008-03-19 Joost Kremers * ebib.el (ebib-display-entry): added set-buffer. 2008-03-18 Joost Kremers * ebib.el (ebib-index-display-fields): new. (ebib-display-entry): new. (ebib-fill-index-buffer): modified so as to make use of ebib-display-entry. (ebib-edit-keyname): same. (ebib-set-index-highlight): changed end-of-line into skip-chars-forward because of ebib-index-display-fields. (ebib-select-entry): same. 2007-11-15 Joost Kremers * ebib.el (ebib-syntax-table): modified the syntax classes for () and [] to punctuation character. Not that it really matters, though. 2007-11-10 Joost Kremers * ebib.el: removed empty lines after the first line of doc strings. (this is apparently not an Emacs convention...) (ebib-read-entry): changed warning message for duplicate entries. (ebib-read-string): same. 2007-11-09 Joost Kremers * ebib.el (ebib-match-quote-forward): reworked a bit. (ebib-show-log): new. (ebib-index-mode-map): added "l" key, bound to ebib-show-log. (ebib-log-mode-map): new. (ebib-log-mode): new. (ebib-quit-log-buffer): new. (ebib-match-delim-forward): new. (ebib-read-string): modified to use ebib-match-delim-forward. (ebib-read-preamble): added a test to check for the result of ebib-match-paren-forward. (ebib-find-bibtex-entries): added test to check if ebib-read-preamble returns non-nil. (ebib-find-end-of-field): modified to use ebib-match-delim-forward. (ebib-create-buffers): added initial message to the log buffer. 2007-11-08 Joost Kremers * ebib.el (ebib-lower): added bury-buffer command for ebib-log-buffer. (ebib-quit): added kill-buffer commands for ebib-log-buffer and ebib-strings-buffer. 2007-11-07 Joost Kremers * ebib.el (ebib-merge-bibtex-file): added final call to ebib-log, to insert "\n\f\n". (ebib-find-bibtex-entries): added "Line" to warning message. (ebib-read-string): same. (ebib-read-entry): same. (ebib-log): added save-excursion, so that the ebib log buffer is only current during this function. also modified to no longer set ebib-log-error to 0 unconditionally, instead checks if it's still nil. also modified to use cond. (ebib-match-brace-forward): new. this function handles braces {} only. (ebib-match-paren-forward): modified to handle parenthesis () and braces {} differently. (ebib-match-quote-forward): modified: logs an error when no closing quote is found, and moves point to the char after the opening quote. 2007-11-07 Joost Kremers * ebib.el (ebib-log-error): new. (ebib-create-buffers): added creating the log buffer. (ebib-find-bibtex-entries): modified to use ebib-log. (ebib-read-string): same. (ebib-read-entry): same. 2007-11-06 Joost Kremers * ebib.el (ebib-customize): added doc string. (ebib-log-buffer): new. (ebib-log): new. (ebib-load-bibtex-file): modified to use ebib-log. (ebib-merge-bibtex-file): same. 2007-11-02 Joost Kremers * ebib.el (ebib-syntax-table): new. (ebib-load-bibtex-file): modified to use with-syntax-table. (ebib-merge-bibtex-file): same. (ebib-import): same. (ebib-store-multiline-text): check-parens removed. 2007-10-31 Joost Kremers * ebib.el (ebib-init): removed test whether ~/.ebibrc exists; use second (optional) argument to load instead. 2007-10-29 Joost Kremers * ebib.el (ebib-marked-face): turned into a customisable option. (ebib-fill-index-buffer): modified to use ebib-marked-face as a face, rather than a variable. (ebib-mark-entry): same. 2007-10-29 Joost Kremers * ebib.el (ebib-fill-index-buffer): changed mapcar to mapc (prevents compiler warning). fix provided by Leo . (ebib): added autoload cookie. suggested by Leo . (ebib-mark-entry): fixed typo: '(face ,ebib-marked-face) to `(face ,ebib-marked-face). fix provided by Leo . 2007-10-22 Joost Kremers * ebib.el (ebib): modified to store the buffer from which ebib is called in ebib-push-buffer, so that it becomes the default for pushing entries. Thanks to Sinisa Pajevic for the suggestion. 2007-10-20 Joost Kremers * ebib.el (ebib-redisplay-current-field): modified. now redisplays the entire entry buffer is the current field is crossref. (cutting the value from the crossref field would leave the inherited field values visible.) (ebib-import): modified to use insert-buffer-substring, rather than buffer-string and insert. this way, there is no need to temporarily store the buffer contents in a variable. (ebib-get-field-highlighted): modified so that it doesn't produce an error if an entry contains a crossref to an entry that does not exist. (ebib-get-local-databases): variable bibfiles removed from the let. 2007-10-20 Joost Kremers * ebib.el (ebib-local-bibtex-filenames): renamed from ebib-local-bibtex-filname. this is now a list of strings, rather than a string. thanks to Sinisa Pajevic for pointing out that a \bibliography command can contain more than one .bib file. (ebib-extract-bibfiles): removed. (ebib-get-local-databases): modified to return a list of database filenames. also now uses insert-buffer-substring, rather than a combination of buffer-string and insert. (ebib-insert-bibtex-key): modified so that it can handle multiple bibtex files. this reflects the change to ebib-local-bibtex-filenames. (ebib-entry-summary): same. 2007-10-19 Joost Kremers * ebib.el (ebib-push-entry-key): new. pushes the current entry key, or the marked entry keys, to a buffer, using ebib-insertion-strings. thanks to Sinisa Pajevic for suggesting this feature. (ebib-key "p"): changed to ebib-push-entry-key. (ebib-key "r"): new. assigned to ebib-edit-preamble. (ebib-prefixed-functions): ebib-push-entry-key added. (ebib-push-buffer): new. holds the name of the last buffer to which an entry was pushed, to present it as default in the next push operation. (ebib-insertion-strings): modified default value: 0 added. 2007-10-11 Joost Kremers * ebib.el (ebib-get-field-highlighted): modified so as to show field values inherited from a cross-referenced entry. (ebib-crossref-face): new. (ebib-edit-crossref): modified to redisplay the entire entry buffer, not just the current field. 2007-07-29 Joost Kremers * ebib.el (ebib-store-multiline-text): added a check to make sure the text in the buffer doesn't contain unbalanced braces. (ebib-filter-to-virtual-db): changed to give more feedback in the minibuffer about what the user is doing. 2007-06-26 Joost Kremers * ebib.el (ebib-insert-bibtex-key): changed to show the cite command that the user has selected through the prefix argument. 2007-04-26 Joost Kremers * ebib.el (ebib-standard-url-field): doc string modified. 2007-04-06 Joost Kremers * ebib.el (ebib-allow-identical-fields): new. (ebib-find-bibtex-fields): modified so as to use ebib-allow-identical-fields. 2007-03-30 Joost Kremers * ebib.el (ebib-url-regexp): bug fix: removed \l from default value. 2007-03-29 Joost Kremers * ebib.el: Ebib 1.3.0 released. 2007-03-29 Joost Kremers * ebib.el (ebib-index-mode-map): added "u" key. (ebib-url-field): new. (ebib-url-regexp): new. (ebib-browse-url): new. (ebib-call-browser): new. (ebib-entry-mode-map): added "u" key. (ebib-browse-url-in-field): new. (ebib-call-browser-command): new. 2007-03-28 Joost Kremers * ebib.el (raw-p): regexp "\".*?\" replaced with "\"[^\"]*?\"". The dot doesn't match \n, so a multiline string enclosed by double quotes was incorrectly recognised as a raw string. 2007-03-27 Joost Kremers * ebib.el (ebib-export-entry): ebib-execute-when removed. ebib-marked-p replaced with ebib-called-with-prefix. (ebib-export-single-entry): added ebib-execute-when. (ebib-export-marked-entries): same. (ebib-prefix-map): new. (actually, this is ebib-semicolon-map reintroduced under a new name.) (ebib-index-mode-map): binding of the prefix key ";" changed to ebib-prefix-map. (ebib-key): modified so that if the user redefines a key in ebib-index-mode-map, it checks whether the function is bound in ebib-prefix-map as well, and if so, binds it to the same key. Furthermore, if the user unbinds a key, it is unbound in ebib-prefix-map as well. (ebib-marked-p): removed. (ebib-prefixed-functions): new. (ebib-prefix-key): new. (ebib-key): modified so that it unsets the current prefix key if the user redefines the prefix key with mark-prefix. (ebib-index-mode-map): key bindings no longer done in the defvar definition, but at top level with ebib-key. Using ebib-key has the advantage that ebib-prefix-map is automatically set up correctly as well. 2007-03-26 Joost Kremers * ebib.el (ebib-called-with-prefix): new. (ebib-marked-p): new. (ebib-prefix-key): new. (ebib-key): added clause for mark-prefix. (ebib-delete-marked-entries): removed. (ebib-delete-entry): modified to handle the prefix key. (ebib-export-entry): modified to call either of two helper functions, depending on whether it was called with or without prefix key. (ebib-export-single-entry): new. helper function for ebib-export-entry. (ebib-export-marked-entries): changed into helper function for ebib-export-entry. (ebib-print-database): removed. (ebib-print-marked-entries): removed. (ebib-semicolon-map): removed. (ebib-index-mode-map): binding for L changed to ebib-latex-entries, and binding for P changed to ebib-print-entries. (ebib-print-entries): made interactive and modified to handle marked entries. (ebib-latex-database): removed. (ebib-latex-marked-entries): removed. (ebib-latex-entries): made interactive and modified to handle marked entries. (ebib-mark-all): removed. 2007-03-25 Joost Kremers * ebib.el (ebib-remove-entry-from-db): modified so that a deleted entry is also deleted from edb-marked-entries if it's there. This avoids problems when the user deletes a marked entry, and also when he renames the entry key of a marked entry. (ebib-delete-marked-entries): no longer sets edb-marked-entries to nil, as the entries are removed one by one by ebib-remove-entry-from-db. (ebib-edit-keyname): modified so that it marks the renamed entry if it was marked before the renaming. (ebib-unmark-all): renamed to ebib-mark-all. (ebib-mark-all): modified so that it marks all entries if there are no marked entries. (ebib-mark-entry): real-db removed from ebib-execute-when. (ebib-export-entry): modified to include the entry name in the messages passed to ebib-export-to-db and ebib-export-to-file. (ebib-export-string): same with string abbreviation. 2007-03-24 Joost Kremers * ebib.el (ebib-export-string): modified to make use of ebib-export-to-db and ebib-export-to-file. (ebib-export-all-strings): same. (ebib-export-preamble): same. (ebib-export-marked-entries): new. (ebib-semicolon-map): new key "x" added. (propertize): new. (ebib-write-database): rewritten to stop XEmacs from complaining. (See arch log for details.) (ebib-export-to-file): modified documentation string, as it said something about insert-fn that isn't correct. (ebib-execute-helper): added marked-entries. (ebib-delete-marked-entries): modified to use marked-entries. (ebib-export-marked-entries): same. (ebib-delete-marked-entries): added default clause to ebib-execute-when. (ebib-print-entries): new. contains most of the code of former ebib-print-database. (ebib-print-database): modified to use ebib-print-entries. (ebib-print-marked-entries): new. (define-prefix-command): new keys "P", "L" and "m". (ebib-mark-entry): modified: no longer adds the text properties to the entry key in the database, just in the index buffer. (ebib-fill-index-buffer): modified so that it adds a highlight to marked entries. (ebib-latex-entries): new. contains most of the code of former ebib-latex-database. (ebib-latex-database): modified to use ebib-latex-entries. (ebib-latex-marked-entries): new. (ebib-unmark-all): new. 2007-03-23 Joost Kremers * ebib.el (ebib-export-to-db): new. (ebib-export-to-file): new. (ebib-export-entry): modified to make use of ebib-export-to-db and ebib-export-to-file. 2007-03-20 Joost Kremers * ebib.el (ebib-edit-field): changed to unconditionally add braces around the text the user enters. Formerly, this was done through from-raw, which meant that if the user typed braces around the text, these would disappear. 2007-03-19 Joost Kremers * ebib.el (add-to-listq): added a test for Emacs < 22. (ebib-index-mode-map): removed 'ebib-index-mode-map argument to make-keymap. Emacs officially doesn't even allow it, and in XEmacs it's optional. (ebib-entry-mode-map): same. (ebib-strings-mode-map): same. (ebib-help-mode-map): same. (ebib-semicolon-map): new. (ebib-index-mode-map): added ";" key. (ebib-remove-entry-from-db): bug fix: would delete the key of the current entry from the keys list, regardless of which entry was actually deleted. (ebib-semicolon-map): added "d" key. (ebib-delete-marked-entries): new. (ebib-entry-mode-map): bindings of C-x b and C-x k changed to 'undefined. (disabled): removed. The predefined function undefined does the same thing. 2007-03-13 Joost Kremers * ebib.el (ebib-filter-to-virtual-db): removed the check for the `type' field. What was actually meant was the `type*' field, and since this is not in ebib-unique-field-list anyway, the user isn't able to filter on it. 2007-03-12 Joost Kremers * ebib.el (ebib-mark-entry): added again for the 1.3 branch. 2007-03-12 Joost Kremers * ebib.el: ebib 1.2.0 released. 2007-03-12 Joost Kremers * ebib.el (ebib-mark-entry): removed in preparation for release. 2007-03-12 Joost Kremers * ebib.el (ebib-print-database): bugfix: if ebib-print-tempfile is set to "", which is its default value, the body of if-str would not be executed. (ebib-latex-database): same. 2007-03-10 Joost Kremers * ebib.el (ebib-latex-database): new. (ebib-print-preamble): new. (ebib-print-multiline): new. (ebib-latex-preamble): new. (ebib-print-tempfile): new. (ebib-print-database): modified to use ebib-print-preamble, ebib-print-multiline and ebib-print-tempfile. (ebib-latex-database): added real-db to ebib-execute-when. (ebib-timestamp-format): new. (ebib-insert-entry): modified to use format-time-string and ebib-timestamp-format. (ebib-format-entry): same. (ebib-yank-field-contents): renamed from ebib-paste-field-contents. 2007-03-08 Joost Kremers * ebib.el (ebib-print-database): new. 2007-03-06 Joost Kremers * ebib.el (ebib-index-scroll-down): new. replaces ebib-entry-page-up. (ebib-index-scroll-up): new. replaces ebib-entry-page-down. (ebib-follow-crossref): new. (ebib-index-mode-map): added "F" key. 2007-03-02 Joost Kremers * ebib.el (ebib-delete-entry): removed optional argument entry-key, as it wasn't used at all. 2007-03-01 Joost Kremers * ebib.el (ebib-paste-field-contents): sets this-command to t if called illegally. that way, a second consecutive call to this function is also recognised as illegal. 2007-02-26 Joost Kremers * ebib.el (ebib-paste-field-contents): doc string slightly expanded. 2007-02-25 Joost Kremers * ebib.el (ebib-paste-field-contents): added test for crossref field. (ebib-paste-field-contents): modified so that repeatedly calling this command walks around the kill ring, just like C-y/M-y. 2007-02-23 Joost Kremers * ebib.el (ebib-move-to-field): bug fix: if the field being moved to is type*, used to search for 'type', causing confusion with an actual type field (e.g. in the entry type incollection.) now just moves to (point-min). (ebib-set-modified): bug fix: the modification flag of the index buffer would be (re)set, regardless of whether it actually holds the database whose modification flag is being (re)set. 2007-02-22 Joost Kremers * ebib.el (ebib-execute-when): changed so that it does not produce a spurious and if the envs list of a form only contains one element. 2007-02-21 Joost Kremers * ebib.el (ebib-print-filter): changed the argument of interactive from "p" to "P", to obtain the raw prefix argument. (ebib-save-current-database): changed message to error. (ebib-print-filter): added a default-clause to ebib-execute-when, to produce a beep. (ebib-prev-entry): same. (ebib-next-entry): same. (ebib-add-entry): same. (ebib-goto-first-entry): same. (ebib-goto-last-entry): same. (ebib-edit-keyname): same. (ebib-mark-entry): same. (ebib-entry-page-up): same. (ebib-entry-page-down): same. (ebib-write-database): same. (ebib-delete-entry): same. (ebib-select-entry): same. (ebib-export-entry): same. (ebib-search): same. (ebib-search-next): same. (ebib-edit-strings): same. (ebib-edit-preamble): same. (ebib-export-preamble): same. (ebib-virtual-db-and): same. (ebib-virtual-db-or): same. (ebib-virtual-db-not): same. 2007-02-20 Joost Kremers * ebib.el (ebib-filter-to-virtual-db): fixed a bug: the additional fields weren't included in the collection. (ebib-edit-field): spurious progn removed. (ebib-execute-helper): wrapped in an eval-and-compile because otherwise XEmacs complains that the symbol ebib-execute-helper's value as function is void. (safe-write-region): new. GNU Emacs has an optional argument to write-region that can be used to make sure the user doesn't inadvertently overwrite an already existing file. XEmacs does not have this argument. (ebib-write-database): modified to use safe-write-region. (ebib-insertion-strings): changed the default value from nil to '((1 . "\\cite{%s}")). 2007-02-19 Joost Kremers * ebib.el (ebib-index-mode-map): changed binding for ebib-merge-bibtex-file from "m" to "M". (ebib-index-mode-map): added binding "m" for ebib-mark-entry. (ebib-mark-entry): new. (ebib-marked-face): new. needed to accommodate xemacs. there must be a better way to do this... Note that in xemacs, i know of no better way than to use '(face highlight) for both the overlay marking the current entry and to mark selected entries. that means that you cannot tell if the current entry is selected or not. gnu emacs has highlight and :inverse-video. (though the former may be obsoleted at some point?) (ebib-fill-index-buffer): changed to accommodate xemacs. (see comment in the source.) (ebib-index-buffer-help): updated. (ebib-execute-when): new. (ebib-execute-helper): new. (when-entries): removed. its functionality is now covered by ebib-execute-when. (ebib-write-database): modified to use ebib-execute-when and if-str. (ebib-export-entry): modified to use ebib-execute-when. also added a check to make sure that the goal database is not virtual. (ebib-export-preamble): same. (ebib-export-all-strings): added a check to make sure the goal database is not virtual. (ebib-export-string): same. (ebib-prev-entry): modified to use ebib-execute-when. (ebib-next-entry): same. (ebib-add-entry): same. (ebib-close-database): same. (ebib-goto-first-entry): same. (ebib-goto-last-entry): same. (ebib-edit-entry): same. (ebib-edit-keyname): same. (ebib-entry-page-up): same. (ebib-entry-page-down): same. (ebib-save-database): same. (ebib-save-current-database): same. (ebib-delete-entry): same. (ebib-remove-key-from-buffer): same. (ebib-select-entry): same. (ebib-search): same. (ebib-search-next): same. (ebib-edit-strings): same. (ebib-edit-preamble): same. (ebib-next-database): same. (ebib-prev-database): same. (ebib-virtual-db-and): same. (ebib-virtual-db-or): same. (ebib-virtual-db-not): same. (ebib-print-filter): same. 2007-02-19 Joost Kremers * ebib.el: ebib-1.1.4 released. 2007-02-19 Joost Kremers * ebib.el (ebib-filter-to-virtual-db): changed the collection to contain strings rather than symbols, because xemacs requires that. 2007-02-18 Joost Kremers * ebib.el (add-to-listq): new. introduced mainly because xemacs doesn't allow the fourth argument to add-to-list. (actually, i'm not sure if emacs 21.4 supports it...) 2007-02-13 Joost Kremers * ebib.el (ebib-quit): set ebib-strings-highlight to nil. 2007-02-11 Joost Kremers * ebib.el (ebib-unique-field-list): new. used for TAB-completion in ebib-filter-to-virtual-db. (ebib-set-entry-types-hash): modified to set ebib-unique-field-list. (ebib-key): modified to keep the cond statement out of the expansion. (ebib-create-new-database): modified to take an optional database argument: if supplied, returns a copy of that database. (ebib-index-mode-map): added "&", "|", "~" and "V". (ebib-virtual-db-and): new. (ebib-virtual-db-or): new. (ebib-virtual-db-not): new. (ebib-filter-to-virtual-db): new. (ebib-create-virtual-db): new. (contains): new. (ebib-run-filter): new. (ebib-print-filter): new. (ebib-write-database): modified to handle virtual databases. (ebib-edit-entry): modified to exclude virtual databases. (ebib-edit-keyname): same. (ebib-save-current-database): same. (ebib-save-database): same. (ebib-merge-bibtex-file): same (ebib-add-entry): same. (ebib-delete-entry): same. (ebib-export-entry): same. (ebib-edit-strings): same. (ebib-edit-preamble): same. (ebib-export-preamble): same. (ebib-import): same. (ebib-fill-entry-buffer): modified so that it does not result in an error if the current entry does not exist. This is needed in case the user deletes an entry from a database that has a virtual database that containe that entry. (ebib-format-entry): put (eq key 'timestamp) first in the and clause. no need to check timestamp and ebib-use-timestamp for any other field. (ebib-write-database): modified so that when a virtual database is written to a file, it doesn't attempt to put an entry that is still in a virtual database's keys-list but has been deleted in the source database into the new database. (note: this is still not the proper way to handle this. we need to find a clean way to handle the consequences of an entry being deleted in a source database.) 2007-02-10 Joost Kremers * ebib.el (when-entries): included a declare indent statement. (with-buffer-writable): same. (edb): added fields `name' and `virtual'. (ebib-fill-index-buffer): modified to use edb-name. (ebib-load-bibtex-file): same. (ebib-write-database): same. (ebib-search-in-entry): added optional field argument. 2007-02-04 Joost Kremers * ebib.el (ebib-goto-next-set): adapted to make use of ebib-move-to-field. (ebib-goto-prev-set): same. (defentry): removed. (ebib-preload): removed. (ebib-additional-fields): removed. (ebib-insert-entry): modified to insert a timestamp, depending on the argument TIMESTAMP and on the setting of EBIB-USE-TIMESTAMP. (ebib-add-entry): modified: it no longer adds a timestamp itself (as it did after the change two days ago) but just requests ebib-insert-entry to do so. (ebib-read-entry): modified to request insertion of a timestamp. (ebib-edit-keyname): modified so as to explicitly NOT insert a timestamp. (ebib-export-entry): modified so as to request insertion of a timestamp, both when exporting to another database and to a file. (ebib-find-bibtex-entries): modified: timestamp argument added. This argument is simply passed on to ebib-read-entry. (ebib-load-bibtex-file): modified so that no timestamp is inserted into the entries read from file. (ebib-import): modified to request insertion of a timestamp. (ebib-format-entry): modified to insert a timestamp if required. (ebib-export-entry): fixed a bug that kept ebib-export-filename from being set. (ebib-export-preamble): same. 2007-02-03 Joost Kremers * ebib.el (ebib-format-fields): modified to check if hidden fields should be shown. (ebib-init): added a line to make timestamp a hidden field. (ebib-hide-hidden-fields): new. (ebib-toggle-hidden): new. (ebib-move-to-field): new. (ebib-find-visible-field): new. (ebib-prev-field): rewritten to make use of ebib-move-to-field. (ebib-next-field): same. (ebib-goto-first-field): same. (ebib-goto-last-field): same. 2007-02-02 Joost Kremers * ebib.el (ebib-use-timestamp): new. (ebib-add-entry): modified so that it adds a timestamp if ebib-use-timestamp is set. 2007-01-23 Joost Kremers * ebib.el (ebib-keys-window-size): new. (ebib): modified to use ebib-keys-window-size. (ebib-entry-page-up): same. (ebib-entry-page-down): same. (ebib-customize): new. (ebib-index-mode-map): added "C" key command. 2007-01-10 Joost Kremers * ebib.el (ebib): added :prefix tag to defgroup. 2006-12-17 Joost Kremers * ebib.el (ebib-export-preamble): bug (no message being given after exporting the preamble) fixed. 2006-12-13 Joost Kremers * ebib.el: Ebib 0.28 released. 2006-12-12 Joost Kremers * ebib.el (ebib-edit-crossref): fixed a bug that caused ebib-set-modified not to be executed. (ebib-set-modified): fixed. save-excursion should not be part of the body of UNLESS. (ebib-quit): ebib-default-type no longer set to nil. (quiting and restarting ebib would leave it set to nil.) (ebib-save-xrefs-first): new. (ebib-compare-xrefs): new. (ebib-format-database): modified to put crossreferencing entries first. 2006-11-13 Joost Kremers * ebib.el: Ebib 0.27 released. 2006-11-01 Joost Kremers * ebib.el (ebib-paste-field-contents): combined two nested if's into one or'ed. 2006-10-30 Joost Kremers * ebib.el (ebib-format-database): added argument db. (ebib-format-strings): added argument db. (ebib-sort-order): new. (ebib-entry<): new. (ebib-get-sortstring): new. (ebib-insertion-strings): changed to an alist, so that multiple insertion strings can be defined. (ebib-insert-bibtex-key): modified to use the new ebib-insertion-strings. 2006-10-24 Joost Kremers * ebib.el (ebib-insert-bibtex-key): changed to use a customisable insertion string. (ebib-insertion-string): new. 2006-10-23 Joost Kremers * ebib.el: Ebib 0.26 released. 2006-10-23 Joost Kremers * ebib.el (ebib-set-entry-types-hash): new, to make customising the entry types through the customisation buffer possible. (defentry): modified, so that an entry defined with defentry is also added to the list ebib-entry-types. (ebib-additional-fields): renamed from ebib-ign-fields; modified to check whether a field is already in the list before it is added, so that it is not added twice when Ebib is closed and restarted in the same Emacs session. (ebib-find-bibtex-entries): added modify-syntax-entry, so that users can type (e.g.) "o to create umlaut-o. (ebib-format-database): use mapc on edb-keys-list rather than maphash on edb-database, so that the entries are saved in alphabetical order. (Following a suggestion of Thomas Schmitz.) 2006-10-14 Joost Kremers * ebib.el: added customisation group ebib. 2006-10-01 Joost Kremers * ebib.el (ebib-remove-key-from-buffer): added when-entries, to get rid of an error message when the last entry is deleted. (ebib-find-end-of-field): fixed a nasty bug that occurred when reading a .bib-file with an entry in which the last field is raw and is immediately followed by the closing brace. Thanks to Thomas Schmitz for bringing this to my attention. 2006-09-14 Joost Kremers * ebib.el (ebib-ign-fields): code, uri and location removed. 2006-08-29 Joost Kremers * ebib.el (ebib-find-bibtex-entries): changed to return a list of the number of entries and number of strings found, and a boolean for whether a preamble was found. (ebib-load-bibtex-file): adapted to accept the new return value of ebib-find-bibtex-entries. (ebib-merge-bibtex-file): same. (ebib-import): added. 2006-08-28 Joost Kremers * ebib.el (ebib-import): added. 2006-08-25 Joost Kremers * ebib.el: rearranged some of the variable definitions, so that the entry types can be defined in ebib.el rather than in .ebibrc. (ebib-index-mode-map): put the key definitions back in. (ebib-entry-mode-map): same. (ebib-strings-mode-map): same. 2006-08-18 Joost Kremers * ebib.el (ebib): renamed the keys buffer to index buffer and the fields buffer to entry buffer. (ebib-key): new. to enable customisation of the command keys through .ebibrc. (ebib-index-mode-map): moved key definitions to .ebibrc. (ebib-entry-mode-map): same. (ebib-strings-mode-map): same. 2006-08-17 Joost Kremers * ebib.el (ebib-add-entry): rewrote to use ebib-insert-entry. 2006-08-15 Joost Kremers * ebib.el (ebib-delete-entry): split into three functions. (ebib-remove-key-from-buffer): split off from ebib-delete-entry. (ebib-remove-entry-from-db): split off from ebib-delete-entry. (ebib-edit-keyname): new. because it partially does the same as ebib-delete-entry, i split up the latter. 2006-08-13 Joost Kremers * ebib.el (ebib-edit-field): added special clause for the annote field, so that the user is dropped into the multiline edit buffer. 2005-11-18 Joost Kremers * ebib.el (ebib-read-string): changed so that it does not store the braces or quotes surrounding the string. (ebib-match-quote-forward): added a check to make sure that when a double quote is found at the search limit, this isn't mistakenly taken as the matching quote if it is escaped by a backslash. 2005-11-17 Joost Kremers * ebib.el (ebib-fields-mode-map): bound C-x k to ebib-quit-fields-buffer. (ebib-strings-mode-map): bound C-x b to ebib-lower, and C-x k to ebib-quit-strings-buffer. 2005-11-05 Joost Kremers * ebib.el (ebib-load-bibtex-file): use file-readable-p instead of file-exits-p. 2005-11-04 Joost Kremers * ebib.el (ebib-format-fields): new. formats the fields and calls a function to output them. (ebib-fill-fields-buffer): moved the actual formatting and printing code to ebib-format-fields. (ensure-extension): new. make sure a filename has a specific extension. (ebib-load-bibtex-file): changed to use ensure-extension. (remove-from-string): changed to function. (symbol-or-string): same. (ebib-extract-bibfile): new. looks for a \bibliography command in the current buffer and reads its filename. (ebib-get-db-from-filename): new. retrieve a bibtex database based on filename. (ebib-get-local-database): new. finds a database to associate with the LaTeX file in the current buffer. (ebib-insert-bibtex-key): removed option to use a prefix argument. instead uses ebib-get-local-database to select a database to get the keys from. (ebib-entry-summary): new. reads the key at point and displays its entry in a *Help* buffer. 2005-11-03 Joost Kremers * ebib.el (ebib-prefix): changed to function. (next-elem): same. (prev-elem): same. (ebib-get-obl-fields): same. (ebib-get-opt-fields): same. 2005-11-02 Joost Kremers * ebib.el (when-entries): new. execute BODY when there is a database open and it contains entries. (ebib-prev-entry): test whether there are entries in the current database. (ebib-next-entry): same. (ebib-prev-entry): test whether there are entries in the current database. (ebib-next-entry): same. (ebib-goto-first-entry): same. (ebib-goto-last-entry): same. (ebib-edit-entry): same. (ebib-entry-page-up): same. (ebib-entry-page-down): same. (ebib-delete-entry): same. (ebib-select-entry): same. (ebib-export-entry): same. (ebib-search-next): same. (ebib-edit-strings): test whether a database is open. (ebib-edit-preamble): same. (ebib-search): test whether there are entries in the current database, and ask for search string inside the function, rather than in (interactive). (ebib-export-preamble): test whether a database is open. (ebib-next-database): same. (ebib-prev-database): same. (disabled): new. does nothing except beep. used to disable C-x k and C-x b in the fields and strings buffers. 2005-11-02 Steve Youngs * ebib.el (ebib-init): Don't do anything with `ebib-keys-mode-map' here. (ebib-initial-keys-map): Removed. (ebib-full-keys-map): Removed. (ebib-keys-mode-map): Merge them into here. (ebib-load-bibtex-file): Don't do anything with `ebib-keys-mode-map' here. (ebib-close-database): Ditto. (ebib-fill-keys-buffer): Ditto. (ebib-switch-to-database-nth): Make it compatible with GNU/Emacs. 2005-11-02 Joost Kremers * ebib.el (ebib-keys-mode): added C-x k and C-x b redefinitions to ebib-initial-keys-map. (ebib-fields-mode): same. (ebib-strings-mode): same. (ebib-t): removed. 2005-11-02 Steve Youngs * ebib.el (ebib-init): Copy the "initial keys" keymap into `ebib-keys-mode-map'. (ebib-initial-keys-map): Define all the keys inside the variable definition instead of at top level. (ebib-full-keys-map): Ditto. Also make this keymap's parent be `ebib-initial-keys-map' to save on double defining some keys. (ebib-switch-to-database-nth): New. Convenience function for switching between databases. (ebib-fill-keys-buffer): Set the local keymap to `ebib-keys-mode-map'. (ebib-load-bibtex-file): Copy the "full keys" keymap into `ebib-keys-mode-map'. (ebib-close-database): Copy the "initial keys" keymap into `ebib-keys-mode-map' and reset the local map. (ebib-fields-mode-map): Define the keys in the variable definition instead of at top level. (ebib-strings-mode-map): Ditto. (ebib-help-mode-map): Ditto.