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