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