make the buffer ebib was called from the default push buffer
[ebib.git] / src / ChangeLog
blob5d57beac7bfd934a25dfce8046af8de139a7f2e7
1 2007-10-22  Joost Kremers  <joostkremers@yahoo.com>
3         * ebib.el (ebib): modified to store the buffer from which ebib is
4         called in ebib-push-buffer, so that it becomes the default for
5         pushing entries. Thanks to Sinisa Pajevic for the suggestion.
7 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
9         * ebib.el (ebib-redisplay-current-field): modified. now redisplays
10         the entire entry buffer is the current field is crossref. (cutting
11         the value from the crossref field would leave the inherited field
12         values visible.)
13         (ebib-import): modified to use insert-buffer-substring, rather
14         than buffer-string and insert. this way, there is no need to
15         temporarily store the buffer contents in a variable.
16         (ebib-get-field-highlighted): modified so that it doesn't produce
17         an error if an entry contains a crossref to an entry that does not
18         exist.
19         (ebib-get-local-databases): variable bibfiles removed from the let.
21 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
23         * ebib.el (ebib-local-bibtex-filenames): renamed from
24         ebib-local-bibtex-filname. this is now a list of strings, rather
25         than a string. thanks to Sinisa Pajevic for pointing out that a
26         \bibliography command can contain more than one .bib file.
27         (ebib-extract-bibfiles): removed.
28         (ebib-get-local-databases): modified to return a list of database
29         filenames. also now uses insert-buffer-substring, rather than a
30         combination of buffer-string and insert.
31         (ebib-insert-bibtex-key): modified so that it can handle multiple
32         bibtex files. this reflects the change to
33         ebib-local-bibtex-filenames.
34         (ebib-entry-summary): same.
36 2007-10-19  Joost Kremers  <joostkremers@yahoo.com>
38         * ebib.el (ebib-push-entry-key): new. pushes the current entry
39         key, or the marked entry keys, to a buffer, using
40         ebib-insertion-strings. thanks to Sinisa Pajevic for suggesting
41         this feature.
42         (ebib-key "p"): changed to ebib-push-entry-key.
43         (ebib-key "r"): new. assigned to ebib-edit-preamble.
44         (ebib-prefixed-functions): ebib-push-entry-key added.
45         (ebib-push-buffer): new. holds the name of the last buffer to
46         which an entry was pushed, to present it as default in the next
47         push operation.
48         (ebib-insertion-strings): modified default value: 0 added.
50 2007-10-11  Joost Kremers  <joostkremers@yahoo.com>
52         * ebib.el (ebib-get-field-highlighted): modified so as to show
53         field values inherited from a cross-referenced entry.
54         (ebib-crossref-face): new.
55         (ebib-edit-crossref): modified to redisplay the entire entry
56         buffer, not just the current field.
58 2007-07-29  Joost Kremers  <joostkremers@yahoo.com>
60         * ebib.el (ebib-store-multiline-text): added a check to make sure
61         the text in the buffer doesn't contain unbalanced braces.
62         (ebib-filter-to-virtual-db): changed to give more feedback in the
63         minibuffer about what the user is doing.
65 2007-06-26  Joost Kremers  <joostkremers@yahoo.com>
67         * ebib.el (ebib-insert-bibtex-key): changed to show the cite
68         command that the user has selected through the prefix argument.
70 2007-04-26  Joost Kremers  <joostkremers@yahoo.com>
72         * ebib.el (ebib-standard-url-field): doc string modified.
74 2007-04-06  Joost Kremers  <joostkremers@yahoo.com>
76         * ebib.el (ebib-allow-identical-fields): new.
77         (ebib-find-bibtex-fields): modified so as to use
78         ebib-allow-identical-fields.
80 2007-03-30  Joost Kremers  <joostkremers@yahoo.com>
82         * ebib.el (ebib-url-regexp): bug fix: removed \l from default
83         value.
85 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
87         * ebib.el: Ebib 1.3.0 released.
89 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
91         * ebib.el (ebib-index-mode-map): added "u" key.
92         (ebib-url-field): new.
93         (ebib-url-regexp): new.
94         (ebib-browse-url): new.
95         (ebib-call-browser): new.
96         (ebib-entry-mode-map): added "u" key.
97         (ebib-browse-url-in-field): new.
98         (ebib-call-browser-command): new.
100 2007-03-28  Joost Kremers  <joostkremers@yahoo.com>
102         * ebib.el (raw-p): regexp "\".*?\" replaced with
103         "\"[^\"]*?\"". The dot doesn't match \n, so a multiline string
104         enclosed by double quotes was incorrectly recognised as a raw
105         string.
107 2007-03-27  Joost Kremers  <joostkremers@yahoo.com>
109         * ebib.el (ebib-export-entry): ebib-execute-when
110         removed. ebib-marked-p replaced with ebib-called-with-prefix.
111         (ebib-export-single-entry): added ebib-execute-when.
112         (ebib-export-marked-entries): same.
113         (ebib-prefix-map): new. (actually, this is ebib-semicolon-map
114         reintroduced under a new name.)
115         (ebib-index-mode-map): binding of the prefix key ";" changed to
116         ebib-prefix-map.
117         (ebib-key): modified so that if the user redefines a key in
118         ebib-index-mode-map, it checks whether the function is bound in
119         ebib-prefix-map as well, and if so, binds it to the same
120         key. Furthermore, if the user unbinds a key, it is unbound in
121         ebib-prefix-map as well.
122         (ebib-marked-p): removed.
123         (ebib-prefixed-functions): new.
124         (ebib-prefix-key): new.
125         (ebib-key): modified so that it unsets the current prefix key if
126         the user redefines the prefix key with mark-prefix.
127         (ebib-index-mode-map): key bindings no longer done in the defvar
128         definition, but at top level with ebib-key. Using ebib-key has the
129         advantage that ebib-prefix-map is automatically set up correctly
130         as well.
132 2007-03-26  Joost Kremers  <joostkremers@yahoo.com>
134         * ebib.el (ebib-called-with-prefix): new.
135         (ebib-marked-p): new.
136         (ebib-prefix-key): new.
137         (ebib-key): added clause for mark-prefix.
138         (ebib-delete-marked-entries): removed.
139         (ebib-delete-entry): modified to handle the prefix key.
140         (ebib-export-entry): modified to call either of two helper
141         functions, depending on whether it was called with or without
142         prefix key.
143         (ebib-export-single-entry): new. helper function for
144         ebib-export-entry.
145         (ebib-export-marked-entries): changed into helper function for
146         ebib-export-entry.
147         (ebib-print-database): removed.
148         (ebib-print-marked-entries): removed.
149         (ebib-semicolon-map): removed.
150         (ebib-index-mode-map): binding for L changed to
151         ebib-latex-entries, and binding for P changed to
152         ebib-print-entries.
153         (ebib-print-entries): made interactive and modified to handle
154         marked entries.
155         (ebib-latex-database): removed.
156         (ebib-latex-marked-entries): removed.
157         (ebib-latex-entries): made interactive and modified to handle
158         marked entries.
159         (ebib-mark-all): removed.
161 2007-03-25  Joost Kremers  <joostkremers@yahoo.com>
163         * ebib.el (ebib-remove-entry-from-db): modified so that a deleted
164         entry is also deleted from edb-marked-entries if it's there. This
165         avoids problems when the user deletes a marked entry, and also
166         when he renames the entry key of a marked entry.
167         (ebib-delete-marked-entries): no longer sets edb-marked-entries to
168         nil, as the entries are removed one by one by
169         ebib-remove-entry-from-db.
170         (ebib-edit-keyname): modified so that it marks the renamed entry
171         if it was marked before the renaming.
172         (ebib-unmark-all): renamed to ebib-mark-all.
173         (ebib-mark-all): modified so that it marks all entries if there
174         are no marked entries.
175         (ebib-mark-entry): real-db removed from ebib-execute-when.
176         (ebib-export-entry): modified to include the entry name in the
177         messages passed to ebib-export-to-db and ebib-export-to-file.
178         (ebib-export-string): same with string abbreviation.
180 2007-03-24  Joost Kremers  <joostkremers@yahoo.com>
182         * ebib.el (ebib-export-string): modified to make use of
183         ebib-export-to-db and ebib-export-to-file.
184         (ebib-export-all-strings): same.
185         (ebib-export-preamble): same.
186         (ebib-export-marked-entries): new.
187         (ebib-semicolon-map): new key "x" added.
188         (propertize): new.
189         (ebib-write-database): rewritten to stop XEmacs from
190         complaining. (See arch log for details.)
191         (ebib-export-to-file): modified documentation string, as it said
192         something about insert-fn that isn't correct.
193         (ebib-execute-helper): added marked-entries.
194         (ebib-delete-marked-entries): modified to use marked-entries.
195         (ebib-export-marked-entries): same.
196         (ebib-delete-marked-entries): added default clause to
197         ebib-execute-when.
198         (ebib-print-entries): new. contains most of the code of former
199         ebib-print-database.
200         (ebib-print-database): modified to use ebib-print-entries.
201         (ebib-print-marked-entries): new.
202         (define-prefix-command): new keys "P", "L" and "m".
203         (ebib-mark-entry): modified: no longer adds the text properties to
204         the entry key in the database, just in the index buffer.
205         (ebib-fill-index-buffer): modified so that it adds a highlight to
206         marked entries.
207         (ebib-latex-entries): new. contains most of the code of former
208         ebib-latex-database.
209         (ebib-latex-database): modified to use ebib-latex-entries.
210         (ebib-latex-marked-entries): new.
211         (ebib-unmark-all): new.
213 2007-03-23  Joost Kremers  <joostkremers@yahoo.com>
215         * ebib.el (ebib-export-to-db): new.
216         (ebib-export-to-file): new.
217         (ebib-export-entry): modified to make use of ebib-export-to-db and
218         ebib-export-to-file.
220 2007-03-20  Joost Kremers  <joostkremers@yahoo.com>
222         * ebib.el (ebib-edit-field): changed to unconditionally add braces
223         around the text the user enters. Formerly, this was done through
224         from-raw, which meant that if the user typed braces around the
225         text, these would disappear.
227 2007-03-19  Joost Kremers  <joostkremers@yahoo.com>
229         * ebib.el (add-to-listq): added a test for Emacs < 22.
230         (ebib-index-mode-map): removed 'ebib-index-mode-map argument to
231         make-keymap. Emacs officially doesn't even allow it, and in XEmacs
232         it's optional.
233         (ebib-entry-mode-map): same.
234         (ebib-strings-mode-map): same.
235         (ebib-help-mode-map): same.
236         (ebib-semicolon-map): new.
237         (ebib-index-mode-map): added ";" key.
238         (ebib-remove-entry-from-db): bug fix: would delete the key of the
239         current entry from the keys list, regardless of which entry was
240         actually deleted.
241         (ebib-semicolon-map): added "d" key.
242         (ebib-delete-marked-entries): new.
243         (ebib-entry-mode-map): bindings of C-x b and C-x k changed to
244         'undefined.
245         (disabled): removed. The predefined function undefined does the
246         same thing.
248 2007-03-13  Joost Kremers  <joostkremers@yahoo.com>
250         * ebib.el (ebib-filter-to-virtual-db): removed the check for the
251         `type' field. What was actually meant was the `type*' field, and
252         since this is not in ebib-unique-field-list anyway, the user isn't
253         able to filter on it.
255 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
257         * ebib.el (ebib-mark-entry): added again for the 1.3 branch.
259 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
261         * ebib.el: ebib 1.2.0 released.
263 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
265         * ebib.el (ebib-mark-entry): removed in preparation for release.
267 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
269         * ebib.el (ebib-print-database): bugfix: if ebib-print-tempfile is
270         set to "", which is its default value, the body of if-str would
271         not be executed.
272         (ebib-latex-database): same.
274 2007-03-10  Joost Kremers  <joostkremers@yahoo.com>
276         * ebib.el (ebib-latex-database): new.
277         (ebib-print-preamble): new.
278         (ebib-print-multiline): new.
279         (ebib-latex-preamble): new.
280         (ebib-print-tempfile): new.
281         (ebib-print-database): modified to use ebib-print-preamble,
282         ebib-print-multiline and ebib-print-tempfile.
283         (ebib-latex-database): added real-db to ebib-execute-when.
284         (ebib-timestamp-format): new.
285         (ebib-insert-entry): modified to use format-time-string and ebib-timestamp-format.
286         (ebib-format-entry): same.
287         (ebib-yank-field-contents): renamed from ebib-paste-field-contents.
289 2007-03-08  Joost Kremers  <joostkremers@yahoo.com>
291         * ebib.el (ebib-print-database): new.
293 2007-03-06  Joost Kremers  <joostkremers@yahoo.com>
295         * ebib.el (ebib-index-scroll-down): new. replaces ebib-entry-page-up.
296         (ebib-index-scroll-up): new. replaces ebib-entry-page-down.
297         (ebib-follow-crossref): new.
298         (ebib-index-mode-map): added "F" key.
300 2007-03-02  Joost Kremers  <joostkremers@yahoo.com>
302         * ebib.el (ebib-delete-entry): removed optional argument
303         entry-key, as it wasn't used at all.
305 2007-03-01  Joost Kremers  <joostkremers@yahoo.com>
307         * ebib.el (ebib-paste-field-contents): sets this-command to t if
308         called illegally. that way, a second consecutive call to this
309         function is also recognised as illegal.
311 2007-02-26  Joost Kremers  <joostkremers@yahoo.com>
313         * ebib.el (ebib-paste-field-contents): doc string slightly expanded.
315 2007-02-25  Joost Kremers  <joostkremers@yahoo.com>
317         * ebib.el (ebib-paste-field-contents): added test for crossref field.
318         (ebib-paste-field-contents): modified so that repeatedly calling
319         this command walks around the kill ring, just like C-y/M-y.
321 2007-02-23  Joost Kremers  <joostkremers@yahoo.com>
323         * ebib.el (ebib-move-to-field): bug fix: if the field being moved
324         to is type*, used to search for 'type', causing confusion with an
325         actual type field (e.g. in the entry type incollection.) now just
326         moves to (point-min).
327         (ebib-set-modified): bug fix: the modification flag of the index
328         buffer would be (re)set, regardless of whether it actually holds
329         the database whose modification flag is being (re)set.
331 2007-02-22  Joost Kremers  <joostkremers@yahoo.com>
333         * ebib.el (ebib-execute-when): changed so that it does not produce
334         a spurious and if the envs list of a form only contains one element.
336 2007-02-21  Joost Kremers  <joostkremers@yahoo.com>
338         * ebib.el (ebib-print-filter): changed the argument of interactive
339         from "p" to "P", to obtain the raw prefix argument.
340         (ebib-save-current-database): changed message to error.
341         (ebib-print-filter): added a default-clause to ebib-execute-when,
342         to produce a beep.
343         (ebib-prev-entry): same.
344         (ebib-next-entry): same.
345         (ebib-add-entry): same.
346         (ebib-goto-first-entry): same.
347         (ebib-goto-last-entry): same.
348         (ebib-edit-keyname): same.
349         (ebib-mark-entry): same.
350         (ebib-entry-page-up): same.
351         (ebib-entry-page-down): same.
352         (ebib-write-database): same.
353         (ebib-delete-entry): same.
354         (ebib-select-entry): same.
355         (ebib-export-entry): same.
356         (ebib-search): same.
357         (ebib-search-next): same.
358         (ebib-edit-strings): same.
359         (ebib-edit-preamble): same.
360         (ebib-export-preamble): same.
361         (ebib-virtual-db-and): same.
362         (ebib-virtual-db-or): same.
363         (ebib-virtual-db-not): same.
365 2007-02-20  Joost Kremers  <joostkremers@yahoo.com>
367         * ebib.el (ebib-filter-to-virtual-db): fixed a bug: the additional
368         fields weren't included in the collection.
369         (ebib-edit-field): spurious progn removed.
370         (ebib-execute-helper): wrapped in an eval-and-compile because
371         otherwise XEmacs complains that the symbol ebib-execute-helper's
372         value as function is void.
373         (safe-write-region): new. GNU Emacs has an optional argument to
374         write-region that can be used to make sure the user doesn't
375         inadvertently overwrite an already existing file. XEmacs does not
376         have this argument.
377         (ebib-write-database): modified to use safe-write-region.
378         (ebib-insertion-strings): changed the default value from nil to
379         '((1 . "\\cite{%s}")).
381 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
383         * ebib.el (ebib-index-mode-map): changed binding for
384         ebib-merge-bibtex-file from "m" to "M".
385         (ebib-index-mode-map): added binding "m" for ebib-mark-entry.
386         (ebib-mark-entry): new.
387         (ebib-marked-face): new. needed to accommodate xemacs. there must
388         be a better way to do this... Note that in xemacs, i know of no
389         better way than to use '(face highlight) for both the overlay
390         marking the current entry and to mark selected entries. that means
391         that you cannot tell if the current entry is selected or not. gnu
392         emacs has highlight and :inverse-video. (though the former may be
393         obsoleted at some point?)
394         (ebib-fill-index-buffer): changed to accommodate xemacs. (see
395         comment in the source.)
396         (ebib-index-buffer-help): updated.
397         (ebib-execute-when): new.
398         (ebib-execute-helper): new.
399         (when-entries): removed. its functionality is now covered by
400         ebib-execute-when.
401         (ebib-write-database): modified to use ebib-execute-when and if-str.
402         (ebib-export-entry): modified to use ebib-execute-when. also added
403         a check to make sure that the goal database is not virtual.
404         (ebib-export-preamble): same.
405         (ebib-export-all-strings): added a check to make sure the goal
406         database is not virtual.
407         (ebib-export-string): same.
408         (ebib-prev-entry): modified to use ebib-execute-when.
409         (ebib-next-entry): same.
410         (ebib-add-entry): same.
411         (ebib-close-database): same.
412         (ebib-goto-first-entry): same.
413         (ebib-goto-last-entry): same.
414         (ebib-edit-entry): same.
415         (ebib-edit-keyname): same.
416         (ebib-entry-page-up): same.
417         (ebib-entry-page-down): same.
418         (ebib-save-database): same.
419         (ebib-save-current-database): same.
420         (ebib-delete-entry): same.
421         (ebib-remove-key-from-buffer): same.
422         (ebib-select-entry): same.
423         (ebib-search): same.
424         (ebib-search-next): same.
425         (ebib-edit-strings): same.
426         (ebib-edit-preamble): same.
427         (ebib-next-database): same.
428         (ebib-prev-database): same.
429         (ebib-virtual-db-and): same.
430         (ebib-virtual-db-or): same.
431         (ebib-virtual-db-not): same.
432         (ebib-print-filter): same.
434 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
436         * ebib.el: ebib-1.1.4 released.
438 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
440         * ebib.el (ebib-filter-to-virtual-db): changed the collection to
441         contain strings rather than symbols, because xemacs requires that.
443 2007-02-18  Joost Kremers  <joostkremers@yahoo.com>
445         * ebib.el (add-to-listq): new. introduced mainly because xemacs
446         doesn't allow the fourth argument to add-to-list. (actually, i'm
447         not sure if emacs 21.4 supports it...)
449 2007-02-13  Joost Kremers  <joostkremers@yahoo.com>
451         * ebib.el (ebib-quit): set ebib-strings-highlight to nil.
453 2007-02-11  Joost Kremers  <joostkremers@yahoo.com>
455         * ebib.el (ebib-unique-field-list): new. used for TAB-completion
456         in ebib-filter-to-virtual-db.
457         (ebib-set-entry-types-hash): modified to set
458         ebib-unique-field-list.
459         (ebib-key): modified to keep the cond statement out of the
460         expansion.
461         (ebib-create-new-database): modified to take an optional database
462         argument: if supplied, returns a copy of that database.
463         (ebib-index-mode-map): added "&", "|", "~" and "V".
464         (ebib-virtual-db-and): new.
465         (ebib-virtual-db-or): new.
466         (ebib-virtual-db-not): new.
467         (ebib-filter-to-virtual-db): new.
468         (ebib-create-virtual-db): new.
469         (contains): new.
470         (ebib-run-filter): new.
471         (ebib-print-filter): new.
472         (ebib-write-database): modified to handle virtual databases.
473         (ebib-edit-entry): modified to exclude virtual databases.
474         (ebib-edit-keyname): same.
475         (ebib-save-current-database): same.
476         (ebib-save-database): same.
477         (ebib-merge-bibtex-file): same
478         (ebib-add-entry): same.
479         (ebib-delete-entry): same.
480         (ebib-export-entry): same.
481         (ebib-edit-strings): same.
482         (ebib-edit-preamble): same.
483         (ebib-export-preamble): same.
484         (ebib-import): same.
485         (ebib-fill-entry-buffer): modified so that it does not result in
486         an error if the current entry does not exist. This is needed in
487         case the user deletes an entry from a database that has a virtual
488         database that containe that entry.
489         (ebib-format-entry): put (eq key 'timestamp) first in the and
490         clause. no need to check timestamp and ebib-use-timestamp for any
491         other field.
492         (ebib-write-database): modified so that when a virtual database is
493         written to a file, it doesn't attempt to put an entry that is
494         still in a virtual database's keys-list but has been deleted in
495         the source database into the new database. (note: this is still
496         not the proper way to handle this. we need to find a clean way to
497         handle the consequences of an entry being deleted in a source
498         database.)
500 2007-02-10  Joost Kremers  <joostkremers@yahoo.com>
502         * ebib.el (when-entries): included a declare indent statement.
503         (with-buffer-writable): same.
504         (edb): added fields `name' and `virtual'.
505         (ebib-fill-index-buffer): modified to use edb-name.
506         (ebib-load-bibtex-file): same.
507         (ebib-write-database): same.
508         (ebib-search-in-entry): added optional field argument.
510 2007-02-04  Joost Kremers  <joostkremers@yahoo.com>
512         * ebib.el (ebib-goto-next-set): adapted to make use of
513         ebib-move-to-field.
514         (ebib-goto-prev-set): same.
515         (defentry): removed.
516         (ebib-preload): removed.
517         (ebib-additional-fields): removed.
518         (ebib-insert-entry): modified to insert a timestamp, depending on
519         the argument TIMESTAMP and on the setting of EBIB-USE-TIMESTAMP.
520         (ebib-add-entry): modified: it no longer adds a timestamp
521         itself (as it did after the change two days ago) but just requests
522         ebib-insert-entry to do so.
523         (ebib-read-entry): modified to request insertion of a timestamp.
524         (ebib-edit-keyname): modified so as to explicitly NOT insert a
525         timestamp.
526         (ebib-export-entry): modified so as to request insertion of a
527         timestamp, both when exporting to another database and to a file.
528         (ebib-find-bibtex-entries): modified: timestamp argument
529         added. This argument is simply passed on to ebib-read-entry.
530         (ebib-load-bibtex-file): modified so that no timestamp is inserted
531         into the entries read from file.
532         (ebib-import): modified to request insertion of a timestamp.
533         (ebib-format-entry): modified to insert a timestamp if required.
534         (ebib-export-entry): fixed a bug that kept ebib-export-filename
535         from being set.
536         (ebib-export-preamble): same.
538 2007-02-03  Joost Kremers  <joostkremers@yahoo.com>
540         * ebib.el (ebib-format-fields): modified to check if hidden fields
541         should be shown.
542         (ebib-init): added a line to make timestamp a hidden field.
543         (ebib-hide-hidden-fields): new.
544         (ebib-toggle-hidden): new.
545         (ebib-move-to-field): new.
546         (ebib-find-visible-field): new.
547         (ebib-prev-field): rewritten to make use of ebib-move-to-field.
548         (ebib-next-field): same.
549         (ebib-goto-first-field): same.
550         (ebib-goto-last-field): same.
552 2007-02-02  Joost Kremers  <joostkremers@yahoo.com>
554         * ebib.el (ebib-use-timestamp): new.
555         (ebib-add-entry): modified so that it adds a timestamp if
556         ebib-use-timestamp is set.
558 2007-01-23  Joost Kremers  <joostkremers@yahoo.com>
560         * ebib.el (ebib-keys-window-size): new.
561         (ebib): modified to use ebib-keys-window-size.
562         (ebib-entry-page-up): same.
563         (ebib-entry-page-down): same.
564         (ebib-customize): new.
565         (ebib-index-mode-map): added "C" key command.
567 2007-01-10  Joost Kremers  <joostkremers@yahoo.com>
569         * ebib.el (ebib): added :prefix tag to defgroup.
571 2006-12-17  Joost Kremers  <joostkremers@yahoo.com>
573         * ebib.el (ebib-export-preamble): bug (no message being given
574         after exporting the preamble) fixed.
576 2006-12-13  Joost Kremers  <joostkremers@yahoo.com>
578         * ebib.el: Ebib 0.28 released.
580 2006-12-12  Joost Kremers  <joostkremers@yahoo.com>
582         * ebib.el (ebib-edit-crossref): fixed a bug that caused
583         ebib-set-modified not to be executed.
584         (ebib-set-modified): fixed. save-excursion should not be part of
585         the body of UNLESS.
586         (ebib-quit): ebib-default-type no longer set to nil. (quiting and
587         restarting ebib would leave it set to nil.)
588         (ebib-save-xrefs-first): new.
589         (ebib-compare-xrefs): new.
590         (ebib-format-database): modified to put crossreferencing entries
591         first.
593 2006-11-13  Joost Kremers  <joostkremers@yahoo.com>
595         * ebib.el: Ebib 0.27 released.
597 2006-11-01  Joost Kremers  <joostkremers@yahoo.com>
599         * ebib.el (ebib-paste-field-contents): combined two nested if's
600         into one or'ed.
602 2006-10-30  Joost Kremers  <joostkremers@yahoo.com>
604         * ebib.el (ebib-format-database): added argument db.
605         (ebib-format-strings): added argument db.
606         (ebib-sort-order): new.
607         (ebib-entry<): new.
608         (ebib-get-sortstring): new.
609         (ebib-insertion-strings): changed to an alist, so that multiple
610         insertion strings can be defined.
611         (ebib-insert-bibtex-key): modified to use the new ebib-insertion-strings.
613 2006-10-24  Joost Kremers  <joostkremers@yahoo.com>
615         * ebib.el (ebib-insert-bibtex-key): changed to use a customisable
616         insertion string.
617         (ebib-insertion-string): new.
619 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
621         * ebib.el: Ebib 0.26 released.
622         
623 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
625         * ebib.el (ebib-set-entry-types-hash): new, to make customising
626         the entry types through the customisation buffer possible.
627         (defentry): modified, so that an entry defined with defentry is
628         also added to the list ebib-entry-types.
629         (ebib-additional-fields): renamed from ebib-ign-fields; modified
630         to check whether a field is already in the list before it is
631         added, so that it is not added twice when Ebib is closed and
632         restarted in the same Emacs session.
633         (ebib-find-bibtex-entries): added modify-syntax-entry, so that
634         users can type (e.g.) "o to create umlaut-o.
635         (ebib-format-database): use mapc on edb-keys-list rather than
636         maphash on edb-database, so that the entries are saved in
637         alphabetical order. (Following a suggestion of Thomas Schmitz.)
639 2006-10-14  Joost Kremers  <joostkremers@yahoo.com>
641         * ebib.el: added customisation group ebib.
643 2006-10-01  Joost Kremers  <joostkremers@yahoo.com>
645         * ebib.el (ebib-remove-key-from-buffer): added when-entries, to
646         get rid of an error message when the last entry is deleted.
647         (ebib-find-end-of-field): fixed a nasty bug that occurred when
648         reading a .bib-file with an entry in which the last field is raw
649         and is immediately followed by the closing brace. Thanks to Thomas
650         Schmitz for bringing this to my attention.
652 2006-09-14  Joost Kremers  <joostkremers@yahoo.com>
654         * ebib.el (ebib-ign-fields): code, uri and location removed.
656 2006-08-29  Joost Kremers  <joostkremers@yahoo.com>
658         * ebib.el (ebib-find-bibtex-entries): changed to return a list of
659         the number of entries and number of strings found, and a boolean
660         for whether a preamble was found.
661         (ebib-load-bibtex-file): adapted to accept the new return value of
662         ebib-find-bibtex-entries.
663         (ebib-merge-bibtex-file): same.
664         (ebib-import): added.
666 2006-08-28  Joost Kremers  <joostkremers@yahoo.com>
668         * ebib.el (ebib-import): added.
670 2006-08-25  Joost Kremers  <joostkremers@yahoo.com>
672         * ebib.el: rearranged some of the variable definitions, so that
673         the entry types can be defined in ebib.el rather than in .ebibrc.
674         (ebib-index-mode-map): put the key definitions back in.
675         (ebib-entry-mode-map): same.
676         (ebib-strings-mode-map): same.
678 2006-08-18  Joost Kremers  <joostkremers@yahoo.com>
680         * ebib.el (ebib): renamed the keys buffer to index buffer and the
681         fields buffer to entry buffer.
682         (ebib-key): new. to enable customisation of the command keys
683         through .ebibrc.
684         (ebib-index-mode-map): moved key definitions to .ebibrc.
685         (ebib-entry-mode-map): same.
686         (ebib-strings-mode-map): same.
688 2006-08-17  Joost Kremers  <joostkremers@yahoo.com>
690         * ebib.el (ebib-add-entry): rewrote to use ebib-insert-entry.
692 2006-08-15  Joost Kremers  <joostkremers@yahoo.com>
694         * ebib.el (ebib-delete-entry): split into three functions.
695         (ebib-remove-key-from-buffer): split off from ebib-delete-entry.
696         (ebib-remove-entry-from-db): split off from ebib-delete-entry.
697         (ebib-edit-keyname): new. because it partially does the same as
698         ebib-delete-entry, i split up the latter.
700 2006-08-13  Joost Kremers  <joostkremers@yahoo.com>
702         * ebib.el (ebib-edit-field): added special clause for the annote
703         field, so that the user is dropped into the multiline edit buffer.
705 2005-11-18  Joost Kremers  <joostkremers@yahoo.com>
707         * ebib.el (ebib-read-string): changed so that it does not store
708         the braces or quotes surrounding the string.
709         (ebib-match-quote-forward): added a check to make sure that when a
710         double quote is found at the search limit, this isn't mistakenly
711         taken as the matching quote if it is escaped by a backslash.
713 2005-11-17  Joost Kremers  <joostkremers@yahoo.com>
715         * ebib.el (ebib-fields-mode-map): bound C-x k to
716         ebib-quit-fields-buffer.
717         (ebib-strings-mode-map): bound C-x b to ebib-lower, and C-x k to
718         ebib-quit-strings-buffer.
719         
720 2005-11-05  Joost Kremers  <joostkremers@yahoo.com>
722         * ebib.el (ebib-load-bibtex-file): use file-readable-p instead of
723         file-exits-p.
725 2005-11-04  Joost Kremers  <joostkremers@yahoo.com>
727         * ebib.el (ebib-format-fields): new. formats the fields and calls
728         a function to output them.
729         (ebib-fill-fields-buffer): moved the actual formatting and
730         printing code to ebib-format-fields.
731         (ensure-extension): new. make sure a filename has a specific
732         extension.
733         (ebib-load-bibtex-file): changed to use ensure-extension.
734         (remove-from-string): changed to function.
735         (symbol-or-string): same.
736         (ebib-extract-bibfile): new. looks for a \bibliography command in
737         the current buffer and reads its filename.
738         (ebib-get-db-from-filename): new. retrieve a bibtex database based
739         on filename.
740         (ebib-get-local-database): new. finds a database to associate with
741         the LaTeX file in the current buffer.
742         (ebib-insert-bibtex-key): removed option to use a prefix
743         argument. instead uses ebib-get-local-database to select a
744         database to get the keys from.
745         (ebib-entry-summary): new. reads the key at point and displays its
746         entry in a *Help* buffer.
748 2005-11-03  Joost Kremers  <joostkremers@yahoo.com>
750         * ebib.el (ebib-prefix): changed to function.
751         (next-elem): same.
752         (prev-elem): same.
753         (ebib-get-obl-fields): same.
754         (ebib-get-opt-fields): same.
756 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
758         * ebib.el (when-entries): new. execute BODY when there is a
759         database open and it contains entries.
760         (ebib-prev-entry): test whether there are entries in the current
761         database.
762         (ebib-next-entry): same.
763         (ebib-prev-entry): test whether there are entries in the current
764         database.
765         (ebib-next-entry): same.
766         (ebib-goto-first-entry): same.
767         (ebib-goto-last-entry): same.
768         (ebib-edit-entry): same.
769         (ebib-entry-page-up): same.
770         (ebib-entry-page-down): same.
771         (ebib-delete-entry): same.
772         (ebib-select-entry): same.
773         (ebib-export-entry): same.
774         (ebib-search-next): same.
775         (ebib-edit-strings): test whether a database is open.
776         (ebib-edit-preamble): same.
777         (ebib-search): test whether there are entries in the current
778         database, and ask for search string inside the function, rather
779         than in (interactive).
780         (ebib-export-preamble): test whether a database is open.
781         (ebib-next-database): same.
782         (ebib-prev-database): same.
783         (disabled): new. does nothing except beep. used to disable C-x k
784         and C-x b in the fields and strings buffers.
786 2005-11-02  Steve Youngs  <steve@sxemacs.org>
788         * ebib.el (ebib-init): Don't do anything with `ebib-keys-mode-map'
789         here.
790         (ebib-initial-keys-map): Removed.
791         (ebib-full-keys-map): Removed.
792         (ebib-keys-mode-map): Merge them into here.
793         (ebib-load-bibtex-file): Don't do anything with
794         `ebib-keys-mode-map' here.
795         (ebib-close-database): Ditto.
796         (ebib-fill-keys-buffer): Ditto.
797         (ebib-switch-to-database-nth): Make it compatible with
798         GNU/Emacs. 
800 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
802         * ebib.el (ebib-keys-mode): added C-x k and C-x b redefinitions
803         to ebib-initial-keys-map.
804         (ebib-fields-mode): same.
805         (ebib-strings-mode): same.
806         (ebib-t): removed.
808 2005-11-02  Steve Youngs  <steve@sxemacs.org>
810         * ebib.el (ebib-init): Copy the "initial keys" keymap into
811         `ebib-keys-mode-map'.
812         (ebib-initial-keys-map): Define all the keys inside the variable
813         definition instead of at top level.
814         (ebib-full-keys-map): Ditto.  Also make this keymap's parent be
815         `ebib-initial-keys-map' to save on double defining some keys.
816         (ebib-switch-to-database-nth): New.  Convenience function for
817         switching between databases.
818         (ebib-fill-keys-buffer): Set the local keymap to `ebib-keys-mode-map'.
819         (ebib-load-bibtex-file): Copy the "full keys" keymap into
820         `ebib-keys-mode-map'.
821         (ebib-close-database): Copy the "initial keys" keymap into
822         `ebib-keys-mode-map' and reset the local map.
823         (ebib-fields-mode-map): Define the keys in the variable definition
824         instead of at top level.
825         (ebib-strings-mode-map): Ditto.
826         (ebib-help-mode-map): Ditto.