File viewing functionality fully implemented
[ebib.git] / src / ChangeLog
blobc5e4326508eb91a0ccd15a331890c1f47a683035
1 2008-04-18  Joost Kremers  <joostkremers@yahoo.com>
3         * ebib.el (ebib-call-file-viewer): new.
4         (ebib-file-regexp): added a space to the regexp. (!)
5         (ebib-browse-url-in-field): changed the doc string.
6         (ebib-view-file-in-field): new.
7         (ebib-view-file-in-field): new. bound to 'f' in the entry buffer.
8         (ebib-file-associations): changed default value: paths removed
9         from the programs. start-process searches the user's PATH.
11 2008-04-17  Joost Kremers  <joostkremers@yahoo.com>
13         * ebib.el (ebib-view-file): new. bound to 'f' in the index
14         buffer. (which means that 'f' is no longer bound to
15         ebib-print-filename.
17 2008-04-11  Joost Kremers  <joostkremers@yahoo.com>
19         * ebib.el (ebib-add-entry): used ebib-display-entry to insert the
20         new entry in the buffer.
22 2008-04-11  Joost Kremers  <joostkremers@yahoo.com>
24         * ebib.el (ebib-add-entry): inserted a space in the format string
25         that puts the new entry key into the buffer. this way
26         ebib-set-index-highlight doesn't put the end of the highlight at
27         the next line.
29 2008-03-26  Joost Kremers  <joostkremers@yahoo.com>
31         * ebib.el (ebib-index-mode): set truncate-lines to t, which works
32         better if ebib-index-dislay-fields is set.
33         (ebib-set-index-highlight): changed so that it highlights the
34         entire line if ebib-index-display-fields is set.
36 2008-03-25  Joost Kremers  <joostkremers@yahoo.com>
38         * ebib.el (ebib-additional-fields): added 'file' to the default
39         value.
40         (ebib-url-regexp): changed doc string.
41         (ebib-standard-file-field): new.
42         (ebib-file-associations): new.
43         (ebib-file-regexp): new.
44         (ebib-file-search-dirs): new.
46 2008-03-19  Joost Kremers  <joostkremers@yahoo.com>
48         * ebib.el (ebib-display-entry): added set-buffer.
50 2008-03-18  Joost Kremers  <joostkremers@yahoo.com>
52         * ebib.el (ebib-index-display-fields): new.
53         (ebib-display-entry): new.
54         (ebib-fill-index-buffer): modified so as to make use of
55         ebib-display-entry.
56         (ebib-edit-keyname): same.
57         (ebib-set-index-highlight): changed end-of-line into
58         skip-chars-forward because of ebib-index-display-fields.
59         (ebib-select-entry): same.
61 2007-11-15  Joost Kremers  <joostkremers@yahoo.com>
63         * ebib.el (ebib-syntax-table): modified the syntax classes for ()
64         and [] to punctuation character. Not that it really matters, though.
66 2007-11-10  Joost Kremers  <joostkremers@yahoo.com>
68         * ebib.el: removed empty lines after the first line of doc
69         strings. (this is apparently not an Emacs convention...)
70         (ebib-read-entry): changed warning message for duplicate entries.
71         (ebib-read-string): same.
73 2007-11-09  Joost Kremers  <joostkremers@yahoo.com>
75         * ebib.el (ebib-match-quote-forward): reworked a bit.
76         (ebib-show-log): new.
77         (ebib-index-mode-map): added "l" key, bound to ebib-show-log.
78         (ebib-log-mode-map): new.
79         (ebib-log-mode): new.
80         (ebib-quit-log-buffer): new.
81         (ebib-match-delim-forward): new.
82         (ebib-read-string): modified to use ebib-match-delim-forward.
83         (ebib-read-preamble): added a test to check for the result of
84         ebib-match-paren-forward.
85         (ebib-find-bibtex-entries): added test to check if
86         ebib-read-preamble returns non-nil.
87         (ebib-find-end-of-field): modified to use ebib-match-delim-forward.
88         (ebib-create-buffers): added initial message to the log buffer.
90 2007-11-08  Joost Kremers  <joostkremers@yahoo.com>
92         * ebib.el (ebib-lower): added bury-buffer command for ebib-log-buffer.
93         (ebib-quit): added kill-buffer commands for ebib-log-buffer and ebib-strings-buffer.
95 2007-11-07  Joost Kremers  <joostkremers@yahoo.com>
97         * ebib.el (ebib-merge-bibtex-file): added final call to ebib-log,
98         to insert "\n\f\n".
99         (ebib-find-bibtex-entries): added "Line" to warning message.
100         (ebib-read-string): same.
101         (ebib-read-entry): same.
102         (ebib-log): added save-excursion, so that the ebib log buffer is
103         only current during this function. also modified to no longer set
104         ebib-log-error to 0 unconditionally, instead checks if it's still
105         nil. also modified to use cond.
106         (ebib-match-brace-forward): new. this function handles braces {}
107         only.
108         (ebib-match-paren-forward): modified to handle parenthesis () and
109         braces {} differently.
110         (ebib-match-quote-forward): modified: logs an error when no
111         closing quote is found, and moves point to the char after the
112         opening quote.
114 2007-11-07  Joost Kremers  <joostkremers@yahoo.com>
116         * ebib.el (ebib-log-error): new.
117         (ebib-create-buffers): added creating the log buffer.
118         (ebib-find-bibtex-entries): modified to use ebib-log.
119         (ebib-read-string): same.
120         (ebib-read-entry): same.
122 2007-11-06  Joost Kremers  <joostkremers@yahoo.com>
124         * ebib.el (ebib-customize): added doc string.
125         (ebib-log-buffer): new.
126         (ebib-log): new.
127         (ebib-load-bibtex-file): modified to use ebib-log.
128         (ebib-merge-bibtex-file): same.
130 2007-11-02  Joost Kremers  <joostkremers@yahoo.com>
132         * ebib.el (ebib-syntax-table): new.
133         (ebib-load-bibtex-file): modified to use with-syntax-table.
134         (ebib-merge-bibtex-file): same.
135         (ebib-import): same.
136         (ebib-store-multiline-text): check-parens removed.
138 2007-10-31  Joost Kremers  <joostkremers@yahoo.com>
140         * ebib.el (ebib-init): removed test whether ~/.ebibrc exists; use
141         second (optional) argument to load instead.
143 2007-10-29  Joost Kremers  <joostkremers@yahoo.com>
145         * ebib.el (ebib-marked-face): turned into a customisable option.
146         (ebib-fill-index-buffer): modified to use ebib-marked-face as a
147         face, rather than a variable.
148         (ebib-mark-entry): same.
150 2007-10-29  Joost Kremers  <joostkremers@yahoo.com>
152         * ebib.el (ebib-fill-index-buffer): changed mapcar to mapc
153         (prevents compiler warning). fix provided by Leo
154         <sdl.web at gmail.com>.
155         (ebib): added autoload cookie. suggested by Leo
156         <sdl.web at gmail.com>.
157         (ebib-mark-entry): fixed typo: '(face ,ebib-marked-face) to `(face
158         ,ebib-marked-face). fix provided by Leo <sdl.web at gmail.com>.
160 2007-10-22  Joost Kremers  <joostkremers@yahoo.com>
162         * ebib.el (ebib): modified to store the buffer from which ebib is
163         called in ebib-push-buffer, so that it becomes the default for
164         pushing entries. Thanks to Sinisa Pajevic for the suggestion.
166 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
168         * ebib.el (ebib-redisplay-current-field): modified. now redisplays
169         the entire entry buffer is the current field is crossref. (cutting
170         the value from the crossref field would leave the inherited field
171         values visible.)
172         (ebib-import): modified to use insert-buffer-substring, rather
173         than buffer-string and insert. this way, there is no need to
174         temporarily store the buffer contents in a variable.
175         (ebib-get-field-highlighted): modified so that it doesn't produce
176         an error if an entry contains a crossref to an entry that does not
177         exist.
178         (ebib-get-local-databases): variable bibfiles removed from the let.
180 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
182         * ebib.el (ebib-local-bibtex-filenames): renamed from
183         ebib-local-bibtex-filname. this is now a list of strings, rather
184         than a string. thanks to Sinisa Pajevic for pointing out that a
185         \bibliography command can contain more than one .bib file.
186         (ebib-extract-bibfiles): removed.
187         (ebib-get-local-databases): modified to return a list of database
188         filenames. also now uses insert-buffer-substring, rather than a
189         combination of buffer-string and insert.
190         (ebib-insert-bibtex-key): modified so that it can handle multiple
191         bibtex files. this reflects the change to
192         ebib-local-bibtex-filenames.
193         (ebib-entry-summary): same.
195 2007-10-19  Joost Kremers  <joostkremers@yahoo.com>
197         * ebib.el (ebib-push-entry-key): new. pushes the current entry
198         key, or the marked entry keys, to a buffer, using
199         ebib-insertion-strings. thanks to Sinisa Pajevic for suggesting
200         this feature.
201         (ebib-key "p"): changed to ebib-push-entry-key.
202         (ebib-key "r"): new. assigned to ebib-edit-preamble.
203         (ebib-prefixed-functions): ebib-push-entry-key added.
204         (ebib-push-buffer): new. holds the name of the last buffer to
205         which an entry was pushed, to present it as default in the next
206         push operation.
207         (ebib-insertion-strings): modified default value: 0 added.
209 2007-10-11  Joost Kremers  <joostkremers@yahoo.com>
211         * ebib.el (ebib-get-field-highlighted): modified so as to show
212         field values inherited from a cross-referenced entry.
213         (ebib-crossref-face): new.
214         (ebib-edit-crossref): modified to redisplay the entire entry
215         buffer, not just the current field.
217 2007-07-29  Joost Kremers  <joostkremers@yahoo.com>
219         * ebib.el (ebib-store-multiline-text): added a check to make sure
220         the text in the buffer doesn't contain unbalanced braces.
221         (ebib-filter-to-virtual-db): changed to give more feedback in the
222         minibuffer about what the user is doing.
224 2007-06-26  Joost Kremers  <joostkremers@yahoo.com>
226         * ebib.el (ebib-insert-bibtex-key): changed to show the cite
227         command that the user has selected through the prefix argument.
229 2007-04-26  Joost Kremers  <joostkremers@yahoo.com>
231         * ebib.el (ebib-standard-url-field): doc string modified.
233 2007-04-06  Joost Kremers  <joostkremers@yahoo.com>
235         * ebib.el (ebib-allow-identical-fields): new.
236         (ebib-find-bibtex-fields): modified so as to use
237         ebib-allow-identical-fields.
239 2007-03-30  Joost Kremers  <joostkremers@yahoo.com>
241         * ebib.el (ebib-url-regexp): bug fix: removed \l from default
242         value.
244 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
246         * ebib.el: Ebib 1.3.0 released.
248 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
250         * ebib.el (ebib-index-mode-map): added "u" key.
251         (ebib-url-field): new.
252         (ebib-url-regexp): new.
253         (ebib-browse-url): new.
254         (ebib-call-browser): new.
255         (ebib-entry-mode-map): added "u" key.
256         (ebib-browse-url-in-field): new.
257         (ebib-call-browser-command): new.
259 2007-03-28  Joost Kremers  <joostkremers@yahoo.com>
261         * ebib.el (raw-p): regexp "\".*?\" replaced with
262         "\"[^\"]*?\"". The dot doesn't match \n, so a multiline string
263         enclosed by double quotes was incorrectly recognised as a raw
264         string.
266 2007-03-27  Joost Kremers  <joostkremers@yahoo.com>
268         * ebib.el (ebib-export-entry): ebib-execute-when
269         removed. ebib-marked-p replaced with ebib-called-with-prefix.
270         (ebib-export-single-entry): added ebib-execute-when.
271         (ebib-export-marked-entries): same.
272         (ebib-prefix-map): new. (actually, this is ebib-semicolon-map
273         reintroduced under a new name.)
274         (ebib-index-mode-map): binding of the prefix key ";" changed to
275         ebib-prefix-map.
276         (ebib-key): modified so that if the user redefines a key in
277         ebib-index-mode-map, it checks whether the function is bound in
278         ebib-prefix-map as well, and if so, binds it to the same
279         key. Furthermore, if the user unbinds a key, it is unbound in
280         ebib-prefix-map as well.
281         (ebib-marked-p): removed.
282         (ebib-prefixed-functions): new.
283         (ebib-prefix-key): new.
284         (ebib-key): modified so that it unsets the current prefix key if
285         the user redefines the prefix key with mark-prefix.
286         (ebib-index-mode-map): key bindings no longer done in the defvar
287         definition, but at top level with ebib-key. Using ebib-key has the
288         advantage that ebib-prefix-map is automatically set up correctly
289         as well.
291 2007-03-26  Joost Kremers  <joostkremers@yahoo.com>
293         * ebib.el (ebib-called-with-prefix): new.
294         (ebib-marked-p): new.
295         (ebib-prefix-key): new.
296         (ebib-key): added clause for mark-prefix.
297         (ebib-delete-marked-entries): removed.
298         (ebib-delete-entry): modified to handle the prefix key.
299         (ebib-export-entry): modified to call either of two helper
300         functions, depending on whether it was called with or without
301         prefix key.
302         (ebib-export-single-entry): new. helper function for
303         ebib-export-entry.
304         (ebib-export-marked-entries): changed into helper function for
305         ebib-export-entry.
306         (ebib-print-database): removed.
307         (ebib-print-marked-entries): removed.
308         (ebib-semicolon-map): removed.
309         (ebib-index-mode-map): binding for L changed to
310         ebib-latex-entries, and binding for P changed to
311         ebib-print-entries.
312         (ebib-print-entries): made interactive and modified to handle
313         marked entries.
314         (ebib-latex-database): removed.
315         (ebib-latex-marked-entries): removed.
316         (ebib-latex-entries): made interactive and modified to handle
317         marked entries.
318         (ebib-mark-all): removed.
320 2007-03-25  Joost Kremers  <joostkremers@yahoo.com>
322         * ebib.el (ebib-remove-entry-from-db): modified so that a deleted
323         entry is also deleted from edb-marked-entries if it's there. This
324         avoids problems when the user deletes a marked entry, and also
325         when he renames the entry key of a marked entry.
326         (ebib-delete-marked-entries): no longer sets edb-marked-entries to
327         nil, as the entries are removed one by one by
328         ebib-remove-entry-from-db.
329         (ebib-edit-keyname): modified so that it marks the renamed entry
330         if it was marked before the renaming.
331         (ebib-unmark-all): renamed to ebib-mark-all.
332         (ebib-mark-all): modified so that it marks all entries if there
333         are no marked entries.
334         (ebib-mark-entry): real-db removed from ebib-execute-when.
335         (ebib-export-entry): modified to include the entry name in the
336         messages passed to ebib-export-to-db and ebib-export-to-file.
337         (ebib-export-string): same with string abbreviation.
339 2007-03-24  Joost Kremers  <joostkremers@yahoo.com>
341         * ebib.el (ebib-export-string): modified to make use of
342         ebib-export-to-db and ebib-export-to-file.
343         (ebib-export-all-strings): same.
344         (ebib-export-preamble): same.
345         (ebib-export-marked-entries): new.
346         (ebib-semicolon-map): new key "x" added.
347         (propertize): new.
348         (ebib-write-database): rewritten to stop XEmacs from
349         complaining. (See arch log for details.)
350         (ebib-export-to-file): modified documentation string, as it said
351         something about insert-fn that isn't correct.
352         (ebib-execute-helper): added marked-entries.
353         (ebib-delete-marked-entries): modified to use marked-entries.
354         (ebib-export-marked-entries): same.
355         (ebib-delete-marked-entries): added default clause to
356         ebib-execute-when.
357         (ebib-print-entries): new. contains most of the code of former
358         ebib-print-database.
359         (ebib-print-database): modified to use ebib-print-entries.
360         (ebib-print-marked-entries): new.
361         (define-prefix-command): new keys "P", "L" and "m".
362         (ebib-mark-entry): modified: no longer adds the text properties to
363         the entry key in the database, just in the index buffer.
364         (ebib-fill-index-buffer): modified so that it adds a highlight to
365         marked entries.
366         (ebib-latex-entries): new. contains most of the code of former
367         ebib-latex-database.
368         (ebib-latex-database): modified to use ebib-latex-entries.
369         (ebib-latex-marked-entries): new.
370         (ebib-unmark-all): new.
372 2007-03-23  Joost Kremers  <joostkremers@yahoo.com>
374         * ebib.el (ebib-export-to-db): new.
375         (ebib-export-to-file): new.
376         (ebib-export-entry): modified to make use of ebib-export-to-db and
377         ebib-export-to-file.
379 2007-03-20  Joost Kremers  <joostkremers@yahoo.com>
381         * ebib.el (ebib-edit-field): changed to unconditionally add braces
382         around the text the user enters. Formerly, this was done through
383         from-raw, which meant that if the user typed braces around the
384         text, these would disappear.
386 2007-03-19  Joost Kremers  <joostkremers@yahoo.com>
388         * ebib.el (add-to-listq): added a test for Emacs < 22.
389         (ebib-index-mode-map): removed 'ebib-index-mode-map argument to
390         make-keymap. Emacs officially doesn't even allow it, and in XEmacs
391         it's optional.
392         (ebib-entry-mode-map): same.
393         (ebib-strings-mode-map): same.
394         (ebib-help-mode-map): same.
395         (ebib-semicolon-map): new.
396         (ebib-index-mode-map): added ";" key.
397         (ebib-remove-entry-from-db): bug fix: would delete the key of the
398         current entry from the keys list, regardless of which entry was
399         actually deleted.
400         (ebib-semicolon-map): added "d" key.
401         (ebib-delete-marked-entries): new.
402         (ebib-entry-mode-map): bindings of C-x b and C-x k changed to
403         'undefined.
404         (disabled): removed. The predefined function undefined does the
405         same thing.
407 2007-03-13  Joost Kremers  <joostkremers@yahoo.com>
409         * ebib.el (ebib-filter-to-virtual-db): removed the check for the
410         `type' field. What was actually meant was the `type*' field, and
411         since this is not in ebib-unique-field-list anyway, the user isn't
412         able to filter on it.
414 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
416         * ebib.el (ebib-mark-entry): added again for the 1.3 branch.
418 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
420         * ebib.el: ebib 1.2.0 released.
422 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
424         * ebib.el (ebib-mark-entry): removed in preparation for release.
426 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
428         * ebib.el (ebib-print-database): bugfix: if ebib-print-tempfile is
429         set to "", which is its default value, the body of if-str would
430         not be executed.
431         (ebib-latex-database): same.
433 2007-03-10  Joost Kremers  <joostkremers@yahoo.com>
435         * ebib.el (ebib-latex-database): new.
436         (ebib-print-preamble): new.
437         (ebib-print-multiline): new.
438         (ebib-latex-preamble): new.
439         (ebib-print-tempfile): new.
440         (ebib-print-database): modified to use ebib-print-preamble,
441         ebib-print-multiline and ebib-print-tempfile.
442         (ebib-latex-database): added real-db to ebib-execute-when.
443         (ebib-timestamp-format): new.
444         (ebib-insert-entry): modified to use format-time-string and ebib-timestamp-format.
445         (ebib-format-entry): same.
446         (ebib-yank-field-contents): renamed from ebib-paste-field-contents.
448 2007-03-08  Joost Kremers  <joostkremers@yahoo.com>
450         * ebib.el (ebib-print-database): new.
452 2007-03-06  Joost Kremers  <joostkremers@yahoo.com>
454         * ebib.el (ebib-index-scroll-down): new. replaces ebib-entry-page-up.
455         (ebib-index-scroll-up): new. replaces ebib-entry-page-down.
456         (ebib-follow-crossref): new.
457         (ebib-index-mode-map): added "F" key.
459 2007-03-02  Joost Kremers  <joostkremers@yahoo.com>
461         * ebib.el (ebib-delete-entry): removed optional argument
462         entry-key, as it wasn't used at all.
464 2007-03-01  Joost Kremers  <joostkremers@yahoo.com>
466         * ebib.el (ebib-paste-field-contents): sets this-command to t if
467         called illegally. that way, a second consecutive call to this
468         function is also recognised as illegal.
470 2007-02-26  Joost Kremers  <joostkremers@yahoo.com>
472         * ebib.el (ebib-paste-field-contents): doc string slightly expanded.
474 2007-02-25  Joost Kremers  <joostkremers@yahoo.com>
476         * ebib.el (ebib-paste-field-contents): added test for crossref field.
477         (ebib-paste-field-contents): modified so that repeatedly calling
478         this command walks around the kill ring, just like C-y/M-y.
480 2007-02-23  Joost Kremers  <joostkremers@yahoo.com>
482         * ebib.el (ebib-move-to-field): bug fix: if the field being moved
483         to is type*, used to search for 'type', causing confusion with an
484         actual type field (e.g. in the entry type incollection.) now just
485         moves to (point-min).
486         (ebib-set-modified): bug fix: the modification flag of the index
487         buffer would be (re)set, regardless of whether it actually holds
488         the database whose modification flag is being (re)set.
490 2007-02-22  Joost Kremers  <joostkremers@yahoo.com>
492         * ebib.el (ebib-execute-when): changed so that it does not produce
493         a spurious and if the envs list of a form only contains one element.
495 2007-02-21  Joost Kremers  <joostkremers@yahoo.com>
497         * ebib.el (ebib-print-filter): changed the argument of interactive
498         from "p" to "P", to obtain the raw prefix argument.
499         (ebib-save-current-database): changed message to error.
500         (ebib-print-filter): added a default-clause to ebib-execute-when,
501         to produce a beep.
502         (ebib-prev-entry): same.
503         (ebib-next-entry): same.
504         (ebib-add-entry): same.
505         (ebib-goto-first-entry): same.
506         (ebib-goto-last-entry): same.
507         (ebib-edit-keyname): same.
508         (ebib-mark-entry): same.
509         (ebib-entry-page-up): same.
510         (ebib-entry-page-down): same.
511         (ebib-write-database): same.
512         (ebib-delete-entry): same.
513         (ebib-select-entry): same.
514         (ebib-export-entry): same.
515         (ebib-search): same.
516         (ebib-search-next): same.
517         (ebib-edit-strings): same.
518         (ebib-edit-preamble): same.
519         (ebib-export-preamble): same.
520         (ebib-virtual-db-and): same.
521         (ebib-virtual-db-or): same.
522         (ebib-virtual-db-not): same.
524 2007-02-20  Joost Kremers  <joostkremers@yahoo.com>
526         * ebib.el (ebib-filter-to-virtual-db): fixed a bug: the additional
527         fields weren't included in the collection.
528         (ebib-edit-field): spurious progn removed.
529         (ebib-execute-helper): wrapped in an eval-and-compile because
530         otherwise XEmacs complains that the symbol ebib-execute-helper's
531         value as function is void.
532         (safe-write-region): new. GNU Emacs has an optional argument to
533         write-region that can be used to make sure the user doesn't
534         inadvertently overwrite an already existing file. XEmacs does not
535         have this argument.
536         (ebib-write-database): modified to use safe-write-region.
537         (ebib-insertion-strings): changed the default value from nil to
538         '((1 . "\\cite{%s}")).
540 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
542         * ebib.el (ebib-index-mode-map): changed binding for
543         ebib-merge-bibtex-file from "m" to "M".
544         (ebib-index-mode-map): added binding "m" for ebib-mark-entry.
545         (ebib-mark-entry): new.
546         (ebib-marked-face): new. needed to accommodate xemacs. there must
547         be a better way to do this... Note that in xemacs, i know of no
548         better way than to use '(face highlight) for both the overlay
549         marking the current entry and to mark selected entries. that means
550         that you cannot tell if the current entry is selected or not. gnu
551         emacs has highlight and :inverse-video. (though the former may be
552         obsoleted at some point?)
553         (ebib-fill-index-buffer): changed to accommodate xemacs. (see
554         comment in the source.)
555         (ebib-index-buffer-help): updated.
556         (ebib-execute-when): new.
557         (ebib-execute-helper): new.
558         (when-entries): removed. its functionality is now covered by
559         ebib-execute-when.
560         (ebib-write-database): modified to use ebib-execute-when and if-str.
561         (ebib-export-entry): modified to use ebib-execute-when. also added
562         a check to make sure that the goal database is not virtual.
563         (ebib-export-preamble): same.
564         (ebib-export-all-strings): added a check to make sure the goal
565         database is not virtual.
566         (ebib-export-string): same.
567         (ebib-prev-entry): modified to use ebib-execute-when.
568         (ebib-next-entry): same.
569         (ebib-add-entry): same.
570         (ebib-close-database): same.
571         (ebib-goto-first-entry): same.
572         (ebib-goto-last-entry): same.
573         (ebib-edit-entry): same.
574         (ebib-edit-keyname): same.
575         (ebib-entry-page-up): same.
576         (ebib-entry-page-down): same.
577         (ebib-save-database): same.
578         (ebib-save-current-database): same.
579         (ebib-delete-entry): same.
580         (ebib-remove-key-from-buffer): same.
581         (ebib-select-entry): same.
582         (ebib-search): same.
583         (ebib-search-next): same.
584         (ebib-edit-strings): same.
585         (ebib-edit-preamble): same.
586         (ebib-next-database): same.
587         (ebib-prev-database): same.
588         (ebib-virtual-db-and): same.
589         (ebib-virtual-db-or): same.
590         (ebib-virtual-db-not): same.
591         (ebib-print-filter): same.
593 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
595         * ebib.el: ebib-1.1.4 released.
597 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
599         * ebib.el (ebib-filter-to-virtual-db): changed the collection to
600         contain strings rather than symbols, because xemacs requires that.
602 2007-02-18  Joost Kremers  <joostkremers@yahoo.com>
604         * ebib.el (add-to-listq): new. introduced mainly because xemacs
605         doesn't allow the fourth argument to add-to-list. (actually, i'm
606         not sure if emacs 21.4 supports it...)
608 2007-02-13  Joost Kremers  <joostkremers@yahoo.com>
610         * ebib.el (ebib-quit): set ebib-strings-highlight to nil.
612 2007-02-11  Joost Kremers  <joostkremers@yahoo.com>
614         * ebib.el (ebib-unique-field-list): new. used for TAB-completion
615         in ebib-filter-to-virtual-db.
616         (ebib-set-entry-types-hash): modified to set
617         ebib-unique-field-list.
618         (ebib-key): modified to keep the cond statement out of the
619         expansion.
620         (ebib-create-new-database): modified to take an optional database
621         argument: if supplied, returns a copy of that database.
622         (ebib-index-mode-map): added "&", "|", "~" and "V".
623         (ebib-virtual-db-and): new.
624         (ebib-virtual-db-or): new.
625         (ebib-virtual-db-not): new.
626         (ebib-filter-to-virtual-db): new.
627         (ebib-create-virtual-db): new.
628         (contains): new.
629         (ebib-run-filter): new.
630         (ebib-print-filter): new.
631         (ebib-write-database): modified to handle virtual databases.
632         (ebib-edit-entry): modified to exclude virtual databases.
633         (ebib-edit-keyname): same.
634         (ebib-save-current-database): same.
635         (ebib-save-database): same.
636         (ebib-merge-bibtex-file): same
637         (ebib-add-entry): same.
638         (ebib-delete-entry): same.
639         (ebib-export-entry): same.
640         (ebib-edit-strings): same.
641         (ebib-edit-preamble): same.
642         (ebib-export-preamble): same.
643         (ebib-import): same.
644         (ebib-fill-entry-buffer): modified so that it does not result in
645         an error if the current entry does not exist. This is needed in
646         case the user deletes an entry from a database that has a virtual
647         database that containe that entry.
648         (ebib-format-entry): put (eq key 'timestamp) first in the and
649         clause. no need to check timestamp and ebib-use-timestamp for any
650         other field.
651         (ebib-write-database): modified so that when a virtual database is
652         written to a file, it doesn't attempt to put an entry that is
653         still in a virtual database's keys-list but has been deleted in
654         the source database into the new database. (note: this is still
655         not the proper way to handle this. we need to find a clean way to
656         handle the consequences of an entry being deleted in a source
657         database.)
659 2007-02-10  Joost Kremers  <joostkremers@yahoo.com>
661         * ebib.el (when-entries): included a declare indent statement.
662         (with-buffer-writable): same.
663         (edb): added fields `name' and `virtual'.
664         (ebib-fill-index-buffer): modified to use edb-name.
665         (ebib-load-bibtex-file): same.
666         (ebib-write-database): same.
667         (ebib-search-in-entry): added optional field argument.
669 2007-02-04  Joost Kremers  <joostkremers@yahoo.com>
671         * ebib.el (ebib-goto-next-set): adapted to make use of
672         ebib-move-to-field.
673         (ebib-goto-prev-set): same.
674         (defentry): removed.
675         (ebib-preload): removed.
676         (ebib-additional-fields): removed.
677         (ebib-insert-entry): modified to insert a timestamp, depending on
678         the argument TIMESTAMP and on the setting of EBIB-USE-TIMESTAMP.
679         (ebib-add-entry): modified: it no longer adds a timestamp
680         itself (as it did after the change two days ago) but just requests
681         ebib-insert-entry to do so.
682         (ebib-read-entry): modified to request insertion of a timestamp.
683         (ebib-edit-keyname): modified so as to explicitly NOT insert a
684         timestamp.
685         (ebib-export-entry): modified so as to request insertion of a
686         timestamp, both when exporting to another database and to a file.
687         (ebib-find-bibtex-entries): modified: timestamp argument
688         added. This argument is simply passed on to ebib-read-entry.
689         (ebib-load-bibtex-file): modified so that no timestamp is inserted
690         into the entries read from file.
691         (ebib-import): modified to request insertion of a timestamp.
692         (ebib-format-entry): modified to insert a timestamp if required.
693         (ebib-export-entry): fixed a bug that kept ebib-export-filename
694         from being set.
695         (ebib-export-preamble): same.
697 2007-02-03  Joost Kremers  <joostkremers@yahoo.com>
699         * ebib.el (ebib-format-fields): modified to check if hidden fields
700         should be shown.
701         (ebib-init): added a line to make timestamp a hidden field.
702         (ebib-hide-hidden-fields): new.
703         (ebib-toggle-hidden): new.
704         (ebib-move-to-field): new.
705         (ebib-find-visible-field): new.
706         (ebib-prev-field): rewritten to make use of ebib-move-to-field.
707         (ebib-next-field): same.
708         (ebib-goto-first-field): same.
709         (ebib-goto-last-field): same.
711 2007-02-02  Joost Kremers  <joostkremers@yahoo.com>
713         * ebib.el (ebib-use-timestamp): new.
714         (ebib-add-entry): modified so that it adds a timestamp if
715         ebib-use-timestamp is set.
717 2007-01-23  Joost Kremers  <joostkremers@yahoo.com>
719         * ebib.el (ebib-keys-window-size): new.
720         (ebib): modified to use ebib-keys-window-size.
721         (ebib-entry-page-up): same.
722         (ebib-entry-page-down): same.
723         (ebib-customize): new.
724         (ebib-index-mode-map): added "C" key command.
726 2007-01-10  Joost Kremers  <joostkremers@yahoo.com>
728         * ebib.el (ebib): added :prefix tag to defgroup.
730 2006-12-17  Joost Kremers  <joostkremers@yahoo.com>
732         * ebib.el (ebib-export-preamble): bug (no message being given
733         after exporting the preamble) fixed.
735 2006-12-13  Joost Kremers  <joostkremers@yahoo.com>
737         * ebib.el: Ebib 0.28 released.
739 2006-12-12  Joost Kremers  <joostkremers@yahoo.com>
741         * ebib.el (ebib-edit-crossref): fixed a bug that caused
742         ebib-set-modified not to be executed.
743         (ebib-set-modified): fixed. save-excursion should not be part of
744         the body of UNLESS.
745         (ebib-quit): ebib-default-type no longer set to nil. (quiting and
746         restarting ebib would leave it set to nil.)
747         (ebib-save-xrefs-first): new.
748         (ebib-compare-xrefs): new.
749         (ebib-format-database): modified to put crossreferencing entries
750         first.
752 2006-11-13  Joost Kremers  <joostkremers@yahoo.com>
754         * ebib.el: Ebib 0.27 released.
756 2006-11-01  Joost Kremers  <joostkremers@yahoo.com>
758         * ebib.el (ebib-paste-field-contents): combined two nested if's
759         into one or'ed.
761 2006-10-30  Joost Kremers  <joostkremers@yahoo.com>
763         * ebib.el (ebib-format-database): added argument db.
764         (ebib-format-strings): added argument db.
765         (ebib-sort-order): new.
766         (ebib-entry<): new.
767         (ebib-get-sortstring): new.
768         (ebib-insertion-strings): changed to an alist, so that multiple
769         insertion strings can be defined.
770         (ebib-insert-bibtex-key): modified to use the new ebib-insertion-strings.
772 2006-10-24  Joost Kremers  <joostkremers@yahoo.com>
774         * ebib.el (ebib-insert-bibtex-key): changed to use a customisable
775         insertion string.
776         (ebib-insertion-string): new.
778 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
780         * ebib.el: Ebib 0.26 released.
781         
782 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
784         * ebib.el (ebib-set-entry-types-hash): new, to make customising
785         the entry types through the customisation buffer possible.
786         (defentry): modified, so that an entry defined with defentry is
787         also added to the list ebib-entry-types.
788         (ebib-additional-fields): renamed from ebib-ign-fields; modified
789         to check whether a field is already in the list before it is
790         added, so that it is not added twice when Ebib is closed and
791         restarted in the same Emacs session.
792         (ebib-find-bibtex-entries): added modify-syntax-entry, so that
793         users can type (e.g.) "o to create umlaut-o.
794         (ebib-format-database): use mapc on edb-keys-list rather than
795         maphash on edb-database, so that the entries are saved in
796         alphabetical order. (Following a suggestion of Thomas Schmitz.)
798 2006-10-14  Joost Kremers  <joostkremers@yahoo.com>
800         * ebib.el: added customisation group ebib.
802 2006-10-01  Joost Kremers  <joostkremers@yahoo.com>
804         * ebib.el (ebib-remove-key-from-buffer): added when-entries, to
805         get rid of an error message when the last entry is deleted.
806         (ebib-find-end-of-field): fixed a nasty bug that occurred when
807         reading a .bib-file with an entry in which the last field is raw
808         and is immediately followed by the closing brace. Thanks to Thomas
809         Schmitz for bringing this to my attention.
811 2006-09-14  Joost Kremers  <joostkremers@yahoo.com>
813         * ebib.el (ebib-ign-fields): code, uri and location removed.
815 2006-08-29  Joost Kremers  <joostkremers@yahoo.com>
817         * ebib.el (ebib-find-bibtex-entries): changed to return a list of
818         the number of entries and number of strings found, and a boolean
819         for whether a preamble was found.
820         (ebib-load-bibtex-file): adapted to accept the new return value of
821         ebib-find-bibtex-entries.
822         (ebib-merge-bibtex-file): same.
823         (ebib-import): added.
825 2006-08-28  Joost Kremers  <joostkremers@yahoo.com>
827         * ebib.el (ebib-import): added.
829 2006-08-25  Joost Kremers  <joostkremers@yahoo.com>
831         * ebib.el: rearranged some of the variable definitions, so that
832         the entry types can be defined in ebib.el rather than in .ebibrc.
833         (ebib-index-mode-map): put the key definitions back in.
834         (ebib-entry-mode-map): same.
835         (ebib-strings-mode-map): same.
837 2006-08-18  Joost Kremers  <joostkremers@yahoo.com>
839         * ebib.el (ebib): renamed the keys buffer to index buffer and the
840         fields buffer to entry buffer.
841         (ebib-key): new. to enable customisation of the command keys
842         through .ebibrc.
843         (ebib-index-mode-map): moved key definitions to .ebibrc.
844         (ebib-entry-mode-map): same.
845         (ebib-strings-mode-map): same.
847 2006-08-17  Joost Kremers  <joostkremers@yahoo.com>
849         * ebib.el (ebib-add-entry): rewrote to use ebib-insert-entry.
851 2006-08-15  Joost Kremers  <joostkremers@yahoo.com>
853         * ebib.el (ebib-delete-entry): split into three functions.
854         (ebib-remove-key-from-buffer): split off from ebib-delete-entry.
855         (ebib-remove-entry-from-db): split off from ebib-delete-entry.
856         (ebib-edit-keyname): new. because it partially does the same as
857         ebib-delete-entry, i split up the latter.
859 2006-08-13  Joost Kremers  <joostkremers@yahoo.com>
861         * ebib.el (ebib-edit-field): added special clause for the annote
862         field, so that the user is dropped into the multiline edit buffer.
864 2005-11-18  Joost Kremers  <joostkremers@yahoo.com>
866         * ebib.el (ebib-read-string): changed so that it does not store
867         the braces or quotes surrounding the string.
868         (ebib-match-quote-forward): added a check to make sure that when a
869         double quote is found at the search limit, this isn't mistakenly
870         taken as the matching quote if it is escaped by a backslash.
872 2005-11-17  Joost Kremers  <joostkremers@yahoo.com>
874         * ebib.el (ebib-fields-mode-map): bound C-x k to
875         ebib-quit-fields-buffer.
876         (ebib-strings-mode-map): bound C-x b to ebib-lower, and C-x k to
877         ebib-quit-strings-buffer.
878         
879 2005-11-05  Joost Kremers  <joostkremers@yahoo.com>
881         * ebib.el (ebib-load-bibtex-file): use file-readable-p instead of
882         file-exits-p.
884 2005-11-04  Joost Kremers  <joostkremers@yahoo.com>
886         * ebib.el (ebib-format-fields): new. formats the fields and calls
887         a function to output them.
888         (ebib-fill-fields-buffer): moved the actual formatting and
889         printing code to ebib-format-fields.
890         (ensure-extension): new. make sure a filename has a specific
891         extension.
892         (ebib-load-bibtex-file): changed to use ensure-extension.
893         (remove-from-string): changed to function.
894         (symbol-or-string): same.
895         (ebib-extract-bibfile): new. looks for a \bibliography command in
896         the current buffer and reads its filename.
897         (ebib-get-db-from-filename): new. retrieve a bibtex database based
898         on filename.
899         (ebib-get-local-database): new. finds a database to associate with
900         the LaTeX file in the current buffer.
901         (ebib-insert-bibtex-key): removed option to use a prefix
902         argument. instead uses ebib-get-local-database to select a
903         database to get the keys from.
904         (ebib-entry-summary): new. reads the key at point and displays its
905         entry in a *Help* buffer.
907 2005-11-03  Joost Kremers  <joostkremers@yahoo.com>
909         * ebib.el (ebib-prefix): changed to function.
910         (next-elem): same.
911         (prev-elem): same.
912         (ebib-get-obl-fields): same.
913         (ebib-get-opt-fields): same.
915 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
917         * ebib.el (when-entries): new. execute BODY when there is a
918         database open and it contains entries.
919         (ebib-prev-entry): test whether there are entries in the current
920         database.
921         (ebib-next-entry): same.
922         (ebib-prev-entry): test whether there are entries in the current
923         database.
924         (ebib-next-entry): same.
925         (ebib-goto-first-entry): same.
926         (ebib-goto-last-entry): same.
927         (ebib-edit-entry): same.
928         (ebib-entry-page-up): same.
929         (ebib-entry-page-down): same.
930         (ebib-delete-entry): same.
931         (ebib-select-entry): same.
932         (ebib-export-entry): same.
933         (ebib-search-next): same.
934         (ebib-edit-strings): test whether a database is open.
935         (ebib-edit-preamble): same.
936         (ebib-search): test whether there are entries in the current
937         database, and ask for search string inside the function, rather
938         than in (interactive).
939         (ebib-export-preamble): test whether a database is open.
940         (ebib-next-database): same.
941         (ebib-prev-database): same.
942         (disabled): new. does nothing except beep. used to disable C-x k
943         and C-x b in the fields and strings buffers.
945 2005-11-02  Steve Youngs  <steve@sxemacs.org>
947         * ebib.el (ebib-init): Don't do anything with `ebib-keys-mode-map'
948         here.
949         (ebib-initial-keys-map): Removed.
950         (ebib-full-keys-map): Removed.
951         (ebib-keys-mode-map): Merge them into here.
952         (ebib-load-bibtex-file): Don't do anything with
953         `ebib-keys-mode-map' here.
954         (ebib-close-database): Ditto.
955         (ebib-fill-keys-buffer): Ditto.
956         (ebib-switch-to-database-nth): Make it compatible with
957         GNU/Emacs. 
959 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
961         * ebib.el (ebib-keys-mode): added C-x k and C-x b redefinitions
962         to ebib-initial-keys-map.
963         (ebib-fields-mode): same.
964         (ebib-strings-mode): same.
965         (ebib-t): removed.
967 2005-11-02  Steve Youngs  <steve@sxemacs.org>
969         * ebib.el (ebib-init): Copy the "initial keys" keymap into
970         `ebib-keys-mode-map'.
971         (ebib-initial-keys-map): Define all the keys inside the variable
972         definition instead of at top level.
973         (ebib-full-keys-map): Ditto.  Also make this keymap's parent be
974         `ebib-initial-keys-map' to save on double defining some keys.
975         (ebib-switch-to-database-nth): New.  Convenience function for
976         switching between databases.
977         (ebib-fill-keys-buffer): Set the local keymap to `ebib-keys-mode-map'.
978         (ebib-load-bibtex-file): Copy the "full keys" keymap into
979         `ebib-keys-mode-map'.
980         (ebib-close-database): Copy the "initial keys" keymap into
981         `ebib-keys-mode-map' and reset the local map.
982         (ebib-fields-mode-map): Define the keys in the variable definition
983         instead of at top level.
984         (ebib-strings-mode-map): Ditto.
985         (ebib-help-mode-map): Ditto.