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