Search crossref
[ebib.git] / src / ChangeLog
blob0dba0ab80c96f768fc6af12ba100c976ad4f7b2e
1 2009-07-13  Joost Kremers  <joostkremers@yahoo.com>
3         * ebib.el (ebib-search-crossref): new.
4         (ebib-entry-summary): modified to use with-help-window instead of
5         with-output-to-temp-buffer.
7 2009-07-12  Joost Kremers  <joostkremers@yahoo.com>
9         * ebib.el (ebib-push-bibtex-key): renamed from ebib-push-entry-key
10         in accordance with ebib-insert-bibtex-key.
11         (ebib-insertion-commands): new.
12         (ebib-insertion-strings): removed.
14 2008-08-01  Joost Kremers  <joostkremers@yahoo.com>
16         * ebib.el (ebib-entry-types-hash): removed.
17         (ebib-set-entry-types-hash): removed.
18         (ebib-set-unique-field-list): new.
19         (ebib-get-obl-fields): modified to use ebib-entry-types directly,
20         rather than the (now defunct) ebib-entry-types-hash.
21         (ebib-get-opt-fields): same.
22         (ebib-find-bibtex-entries): same.
23         (ebib-edit-entry-type): same.
25 2008-06-15  Joost Kremers  <joostkremers@yahoo.com>
27         * ebib.el (ebib-read-string): bug fix: ebib would choke on bibtex
28         entries that have a space after the entry type but before the
29         opening parenthesis/brace. bug reported and fix provided by Rupert
30         Swarbrick.
32 2008-05-31  Joost Kremers  <joostkremers@yahoo.com>
34         * ebib.el (ebib-index-window-size): "key buffer" in the doc string
35         changed to "index buffer".
37 2008-05-30  Joost Kremers  <joostkremers@yahoo.com>
39         * ebib.el (ebib-call-file-viewer): modified to use
40         file-name-extension. is probably a safer bet that what i used
41         before: (last1 (split-string file "\\.")).
43 2008-05-21  Joost Kremers  <joostkremers@yahoo.com>
45         * ebib.el (ebib-add-entry): bugfix: moved the code that creates
46         the hash table up, so that it appears before ebib-display-entry.
48 2008-04-21  Joost Kremers  <joostkremers@yahoo.com>
50         * ebib.el: fixed doc strings.
52 2008-04-20  Joost Kremers  <joostkremers@yahoo.com>
54         * ebib.el (ebib-entry-summary): modified: if the ebib buffers are
55         visible, instead of putting the output in a temp buffer, the
56         relevant entry is displayed in the ebib buffers.
57         (ebib) help mode removed.
58         (ebib-show-log): modified: in split-frame layout the window's
59         dedicated flag must be temporarily unset in order to switch to the
60         strings-buffer.
61         (ebib-quit-log-buffer): same.
62         (ebib-set-index-highlight): modified: move cursor to beginning of
63         line after setting the highlight.
64         (ebib-set-fields-highlight): same.
65         (ebib-set-strings-highlight): same.
66         (ebib-edit-entry): removed goto-char and switch-to-buffer.
67         (line-number-at-pos): this is called line-number in xemacs, so an
68         alias is defined.
69         (ebib-match-paren-forward): added "" to error, to keep xemacs from complaining.
70         (ebib-match-quote-forward): same.
71         (ebib-setup-windows): added delete-other-windows in full-frame layout.
72         (ebib-export-to-db): modified to use gensym.
73         (ebib-export-to-file): same.
75 2008-04-19  Joost Kremers  <joostkremers@yahoo.com>
77         * ebib.el (ebib-pre-ebib-window): new.
78         (ebib-setup-windows): added ebib-pre-ebib-window.
79         (ebib-quit): added ebib-pre-ebib-window.
80         (ebib-lower): modified to use ebib-pre-ebib-window.
81         (ebib-edit-entry-type): modified to use ebib-layout.
82         (ebib-edit-crossref): same.
83         (ebib-fill-entry-buffer): added skip-chars-forward: the cursor
84         usually appears directly after the field name.
85         (ebib-edit-crossref): modified to make the crossref field the
86         current field again.
87         (ebib-redisplay-current-field): same.
88         (ebib-temp-window): new.
89         (ebib-leave-multiline-edit): removed.
90         (ebib-leave-multiline-edit-buffer): new.
91         (ebib-quit-multiline-edit): new.
92         (ebib-cancel-multiline-edit): modified to use
93         ebib-leave-multiline-edit-buffer.
94         (ebib-edit-multiline-field): modified to use ebib-temp-window.
95         (ebib-edit-multiline-string): same.
96         (ebib-multiline-edit): modified: sets the buffer's modified flag
97         to nil.
98         (ebib-edit-strings): modified: in split-frame layout the window's
99         dedicated flag must be temporarily unset in order to switch to the
100         strings-buffer.
101         (ebib-quit-strings-buffer): same.
103 2008-04-19  Joost Kremers  <joostkremers@yahoo.com>
105         * ebib.el (ebib): added nil as second argument (norecord) to
106         select-window.
107         (ebib-setup-windows): modified. now uses ebib-layout to choose the
108         desired window layout.
109         (ebib-delete-window): removed. i really don't think we need this.
110         (ebib-lower): removed call to ebib-delete-windows.
111         (ebib-quit): modified: put all the kill-buffers into a mapc.
112         (ebib-select-other-window): removed.
113         (ebib-leave-ebib-windows): new. bound to "z" and "C-xb".
114         (ebib-lower): modified: now simply leaves the ebib buffers if
115         requested. rebound to "Z".
117 2008-04-18  Joost Kremers  <joostkremers@yahoo.com>
119         * ebib.el (ebib-search-next): changed $ in search string to space:
120         with ebib-index-display-fields, index entries now have a space
121         after the entry key.
122         (ebib-call-file-viewer): new.
123         (ebib-file-regexp): added a space to the regexp. (!)
124         (ebib-browse-url-in-field): changed the doc string.
125         (ebib-view-file-in-field): new.
126         (ebib-view-file-in-field): new. bound to 'f' in the entry buffer.
127         (ebib-file-associations): changed default value: paths removed
128         from the programs, as start-process searches the user's PATH.
130 2008-04-17  Joost Kremers  <joostkremers@yahoo.com>
132         * ebib.el (ebib-view-file): new. bound to 'f' in the index
133         buffer. (which means that 'f' is no longer bound to
134         ebib-print-filename.
136 2008-04-11  Joost Kremers  <joostkremers@yahoo.com>
138         * ebib.el (ebib-layout): new.
139         * ebib.el (ebib-add-entry): used ebib-display-entry to insert the
140         new entry in the buffer.
142 2008-04-11  Joost Kremers  <joostkremers@yahoo.com>
144         * ebib.el (ebib-add-entry): inserted a space in the format string
145         that puts the new entry key into the buffer. this way
146         ebib-set-index-highlight doesn't put the end of the highlight at
147         the next line.
149 2008-03-26  Morgan Veyret  <patzy@appart.kicks-ass.net>
151         * ebib.el (ebib): changed to check if ebib is visible
152         already. window setup moved to ebib-setup-windows.
153         (ebib-setup-windows): new.
154         (ebib-delete-windows): new.
155         (ebib-select-other-window): new. Bound to C-xb.
156         (ebib-quit-entry-buffer): use get-buffer-window to find the index
157         buffer.
158         (ebib-entry-summary): modified to direct output to *Ebib-entry*
159         buffer.
161 2008-03-26  Joost Kremers  <joostkremers@yahoo.com>
163         * ebib.el (ebib-index-mode): set truncate-lines to t, which works
164         better if ebib-index-dislay-fields is set.
165         (ebib-set-index-highlight): changed so that it highlights the
166         entire line if ebib-index-display-fields is set.
168 2008-03-25  Joost Kremers  <joostkremers@yahoo.com>
170         * ebib.el (ebib-additional-fields): added 'file' to the default
171         value.
172         (ebib-url-regexp): changed doc string.
173         (ebib-standard-file-field): new.
174         (ebib-file-associations): new.
175         (ebib-file-regexp): new.
176         (ebib-file-search-dirs): new.
178 2008-03-19  Joost Kremers  <joostkremers@yahoo.com>
180         * ebib.el (ebib-display-entry): added set-buffer.
182 2008-03-18  Joost Kremers  <joostkremers@yahoo.com>
184         * ebib.el (ebib-index-display-fields): new.
185         (ebib-display-entry): new.
186         (ebib-fill-index-buffer): modified so as to make use of
187         ebib-display-entry.
188         (ebib-edit-keyname): same.
189         (ebib-set-index-highlight): changed end-of-line into
190         skip-chars-forward because of ebib-index-display-fields.
191         (ebib-select-entry): same.
193 2007-11-15  Joost Kremers  <joostkremers@yahoo.com>
195         * ebib.el (ebib-syntax-table): modified the syntax classes for ()
196         and [] to punctuation character. Not that it really matters, though.
198 2007-11-10  Joost Kremers  <joostkremers@yahoo.com>
200         * ebib.el: removed empty lines after the first line of doc
201         strings. (this is apparently not an Emacs convention...)
202         (ebib-read-entry): changed warning message for duplicate entries.
203         (ebib-read-string): same.
205 2007-11-09  Joost Kremers  <joostkremers@yahoo.com>
207         * ebib.el (ebib-match-quote-forward): reworked a bit.
208         (ebib-show-log): new.
209         (ebib-index-mode-map): added "l" key, bound to ebib-show-log.
210         (ebib-log-mode-map): new.
211         (ebib-log-mode): new.
212         (ebib-quit-log-buffer): new.
213         (ebib-match-delim-forward): new.
214         (ebib-read-string): modified to use ebib-match-delim-forward.
215         (ebib-read-preamble): added a test to check for the result of
216         ebib-match-paren-forward.
217         (ebib-find-bibtex-entries): added test to check if
218         ebib-read-preamble returns non-nil.
219         (ebib-find-end-of-field): modified to use ebib-match-delim-forward.
220         (ebib-create-buffers): added initial message to the log buffer.
222 2007-11-08  Joost Kremers  <joostkremers@yahoo.com>
224         * ebib.el (ebib-lower): added bury-buffer command for ebib-log-buffer.
225         (ebib-quit): added kill-buffer commands for ebib-log-buffer and ebib-strings-buffer.
227 2007-11-07  Joost Kremers  <joostkremers@yahoo.com>
229         * ebib.el (ebib-merge-bibtex-file): added final call to ebib-log,
230         to insert "\n\f\n".
231         (ebib-find-bibtex-entries): added "Line" to warning message.
232         (ebib-read-string): same.
233         (ebib-read-entry): same.
234         (ebib-log): added save-excursion, so that the ebib log buffer is
235         only current during this function. also modified to no longer set
236         ebib-log-error to 0 unconditionally, instead checks if it's still
237         nil. also modified to use cond.
238         (ebib-match-brace-forward): new. this function handles braces {}
239         only.
240         (ebib-match-paren-forward): modified to handle parenthesis () and
241         braces {} differently.
242         (ebib-match-quote-forward): modified: logs an error when no
243         closing quote is found, and moves point to the char after the
244         opening quote.
246 2007-11-07  Joost Kremers  <joostkremers@yahoo.com>
248         * ebib.el (ebib-log-error): new.
249         (ebib-create-buffers): added creating the log buffer.
250         (ebib-find-bibtex-entries): modified to use ebib-log.
251         (ebib-read-string): same.
252         (ebib-read-entry): same.
254 2007-11-06  Joost Kremers  <joostkremers@yahoo.com>
256         * ebib.el (ebib-customize): added doc string.
257         (ebib-log-buffer): new.
258         (ebib-log): new.
259         (ebib-load-bibtex-file): modified to use ebib-log.
260         (ebib-merge-bibtex-file): same.
262 2007-11-02  Joost Kremers  <joostkremers@yahoo.com>
264         * ebib.el (ebib-syntax-table): new.
265         (ebib-load-bibtex-file): modified to use with-syntax-table.
266         (ebib-merge-bibtex-file): same.
267         (ebib-import): same.
268         (ebib-store-multiline-text): check-parens removed.
270 2007-10-31  Joost Kremers  <joostkremers@yahoo.com>
272         * ebib.el (ebib-init): removed test whether ~/.ebibrc exists; use
273         second (optional) argument to load instead.
275 2007-10-29  Joost Kremers  <joostkremers@yahoo.com>
277         * ebib.el (ebib-marked-face): turned into a customisable option.
278         (ebib-fill-index-buffer): modified to use ebib-marked-face as a
279         face, rather than a variable.
280         (ebib-mark-entry): same.
282 2007-10-29  Joost Kremers  <joostkremers@yahoo.com>
284         * ebib.el (ebib-fill-index-buffer): changed mapcar to mapc
285         (prevents compiler warning). fix provided by Leo
286         <sdl.web at gmail.com>.
287         (ebib): added autoload cookie. suggested by Leo
288         <sdl.web at gmail.com>.
289         (ebib-mark-entry): fixed typo: '(face ,ebib-marked-face) to `(face
290         ,ebib-marked-face). fix provided by Leo <sdl.web at gmail.com>.
292 2007-10-22  Joost Kremers  <joostkremers@yahoo.com>
294         * ebib.el (ebib): modified to store the buffer from which ebib is
295         called in ebib-push-buffer, so that it becomes the default for
296         pushing entries. Thanks to Sinisa Pajevic for the suggestion.
298 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
300         * ebib.el (ebib-redisplay-current-field): modified. now redisplays
301         the entire entry buffer is the current field is crossref. (cutting
302         the value from the crossref field would leave the inherited field
303         values visible.)
304         (ebib-import): modified to use insert-buffer-substring, rather
305         than buffer-string and insert. this way, there is no need to
306         temporarily store the buffer contents in a variable.
307         (ebib-get-field-highlighted): modified so that it doesn't produce
308         an error if an entry contains a crossref to an entry that does not
309         exist.
310         (ebib-get-local-databases): variable bibfiles removed from the let.
312 2007-10-20  Joost Kremers  <joostkremers@yahoo.com>
314         * ebib.el (ebib-local-bibtex-filenames): renamed from
315         ebib-local-bibtex-filname. this is now a list of strings, rather
316         than a string. thanks to Sinisa Pajevic for pointing out that a
317         \bibliography command can contain more than one .bib file.
318         (ebib-extract-bibfiles): removed.
319         (ebib-get-local-databases): modified to return a list of database
320         filenames. also now uses insert-buffer-substring, rather than a
321         combination of buffer-string and insert.
322         (ebib-insert-bibtex-key): modified so that it can handle multiple
323         bibtex files. this reflects the change to
324         ebib-local-bibtex-filenames.
325         (ebib-entry-summary): same.
327 2007-10-19  Joost Kremers  <joostkremers@yahoo.com>
329         * ebib.el (ebib-push-entry-key): new. pushes the current entry
330         key, or the marked entry keys, to a buffer, using
331         ebib-insertion-strings. thanks to Sinisa Pajevic for suggesting
332         this feature.
333         (ebib-key "p"): changed to ebib-push-entry-key.
334         (ebib-key "r"): new. assigned to ebib-edit-preamble.
335         (ebib-prefixed-functions): ebib-push-entry-key added.
336         (ebib-push-buffer): new. holds the name of the last buffer to
337         which an entry was pushed, to present it as default in the next
338         push operation.
339         (ebib-insertion-strings): modified default value: 0 added.
341 2007-10-11  Joost Kremers  <joostkremers@yahoo.com>
343         * ebib.el (ebib-get-field-highlighted): modified so as to show
344         field values inherited from a cross-referenced entry.
345         (ebib-crossref-face): new.
346         (ebib-edit-crossref): modified to redisplay the entire entry
347         buffer, not just the current field.
349 2007-07-29  Joost Kremers  <joostkremers@yahoo.com>
351         * ebib.el (ebib-store-multiline-text): added a check to make sure
352         the text in the buffer doesn't contain unbalanced braces.
353         (ebib-filter-to-virtual-db): changed to give more feedback in the
354         minibuffer about what the user is doing.
356 2007-06-26  Joost Kremers  <joostkremers@yahoo.com>
358         * ebib.el (ebib-insert-bibtex-key): changed to show the cite
359         command that the user has selected through the prefix argument.
361 2007-04-26  Joost Kremers  <joostkremers@yahoo.com>
363         * ebib.el (ebib-standard-url-field): doc string modified.
365 2007-04-06  Joost Kremers  <joostkremers@yahoo.com>
367         * ebib.el (ebib-allow-identical-fields): new.
368         (ebib-find-bibtex-fields): modified so as to use
369         ebib-allow-identical-fields.
371 2007-03-30  Joost Kremers  <joostkremers@yahoo.com>
373         * ebib.el (ebib-url-regexp): bug fix: removed \l from default
374         value.
376 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
378         * ebib.el: Ebib 1.3.0 released.
380 2007-03-29  Joost Kremers  <joostkremers@yahoo.com>
382         * ebib.el (ebib-index-mode-map): added "u" key.
383         (ebib-url-field): new.
384         (ebib-url-regexp): new.
385         (ebib-browse-url): new.
386         (ebib-call-browser): new.
387         (ebib-entry-mode-map): added "u" key.
388         (ebib-browse-url-in-field): new.
389         (ebib-call-browser-command): new.
391 2007-03-28  Joost Kremers  <joostkremers@yahoo.com>
393         * ebib.el (raw-p): regexp "\".*?\" replaced with
394         "\"[^\"]*?\"". The dot doesn't match \n, so a multiline string
395         enclosed by double quotes was incorrectly recognised as a raw
396         string.
398 2007-03-27  Joost Kremers  <joostkremers@yahoo.com>
400         * ebib.el (ebib-export-entry): ebib-execute-when
401         removed. ebib-marked-p replaced with ebib-called-with-prefix.
402         (ebib-export-single-entry): added ebib-execute-when.
403         (ebib-export-marked-entries): same.
404         (ebib-prefix-map): new. (actually, this is ebib-semicolon-map
405         reintroduced under a new name.)
406         (ebib-index-mode-map): binding of the prefix key ";" changed to
407         ebib-prefix-map.
408         (ebib-key): modified so that if the user redefines a key in
409         ebib-index-mode-map, it checks whether the function is bound in
410         ebib-prefix-map as well, and if so, binds it to the same
411         key. Furthermore, if the user unbinds a key, it is unbound in
412         ebib-prefix-map as well.
413         (ebib-marked-p): removed.
414         (ebib-prefixed-functions): new.
415         (ebib-prefix-key): new.
416         (ebib-key): modified so that it unsets the current prefix key if
417         the user redefines the prefix key with mark-prefix.
418         (ebib-index-mode-map): key bindings no longer done in the defvar
419         definition, but at top level with ebib-key. Using ebib-key has the
420         advantage that ebib-prefix-map is automatically set up correctly
421         as well.
423 2007-03-26  Joost Kremers  <joostkremers@yahoo.com>
425         * ebib.el (ebib-called-with-prefix): new.
426         (ebib-marked-p): new.
427         (ebib-prefix-key): new.
428         (ebib-key): added clause for mark-prefix.
429         (ebib-delete-marked-entries): removed.
430         (ebib-delete-entry): modified to handle the prefix key.
431         (ebib-export-entry): modified to call either of two helper
432         functions, depending on whether it was called with or without
433         prefix key.
434         (ebib-export-single-entry): new. helper function for
435         ebib-export-entry.
436         (ebib-export-marked-entries): changed into helper function for
437         ebib-export-entry.
438         (ebib-print-database): removed.
439         (ebib-print-marked-entries): removed.
440         (ebib-semicolon-map): removed.
441         (ebib-index-mode-map): binding for L changed to
442         ebib-latex-entries, and binding for P changed to
443         ebib-print-entries.
444         (ebib-print-entries): made interactive and modified to handle
445         marked entries.
446         (ebib-latex-database): removed.
447         (ebib-latex-marked-entries): removed.
448         (ebib-latex-entries): made interactive and modified to handle
449         marked entries.
450         (ebib-mark-all): removed.
452 2007-03-25  Joost Kremers  <joostkremers@yahoo.com>
454         * ebib.el (ebib-remove-entry-from-db): modified so that a deleted
455         entry is also deleted from edb-marked-entries if it's there. This
456         avoids problems when the user deletes a marked entry, and also
457         when he renames the entry key of a marked entry.
458         (ebib-delete-marked-entries): no longer sets edb-marked-entries to
459         nil, as the entries are removed one by one by
460         ebib-remove-entry-from-db.
461         (ebib-edit-keyname): modified so that it marks the renamed entry
462         if it was marked before the renaming.
463         (ebib-unmark-all): renamed to ebib-mark-all.
464         (ebib-mark-all): modified so that it marks all entries if there
465         are no marked entries.
466         (ebib-mark-entry): real-db removed from ebib-execute-when.
467         (ebib-export-entry): modified to include the entry name in the
468         messages passed to ebib-export-to-db and ebib-export-to-file.
469         (ebib-export-string): same with string abbreviation.
471 2007-03-24  Joost Kremers  <joostkremers@yahoo.com>
473         * ebib.el (ebib-export-string): modified to make use of
474         ebib-export-to-db and ebib-export-to-file.
475         (ebib-export-all-strings): same.
476         (ebib-export-preamble): same.
477         (ebib-export-marked-entries): new.
478         (ebib-semicolon-map): new key "x" added.
479         (propertize): new.
480         (ebib-write-database): rewritten to stop XEmacs from
481         complaining. (See arch log for details.)
482         (ebib-export-to-file): modified documentation string, as it said
483         something about insert-fn that isn't correct.
484         (ebib-execute-helper): added marked-entries.
485         (ebib-delete-marked-entries): modified to use marked-entries.
486         (ebib-export-marked-entries): same.
487         (ebib-delete-marked-entries): added default clause to
488         ebib-execute-when.
489         (ebib-print-entries): new. contains most of the code of former
490         ebib-print-database.
491         (ebib-print-database): modified to use ebib-print-entries.
492         (ebib-print-marked-entries): new.
493         (define-prefix-command): new keys "P", "L" and "m".
494         (ebib-mark-entry): modified: no longer adds the text properties to
495         the entry key in the database, just in the index buffer.
496         (ebib-fill-index-buffer): modified so that it adds a highlight to
497         marked entries.
498         (ebib-latex-entries): new. contains most of the code of former
499         ebib-latex-database.
500         (ebib-latex-database): modified to use ebib-latex-entries.
501         (ebib-latex-marked-entries): new.
502         (ebib-unmark-all): new.
504 2007-03-23  Joost Kremers  <joostkremers@yahoo.com>
506         * ebib.el (ebib-export-to-db): new.
507         (ebib-export-to-file): new.
508         (ebib-export-entry): modified to make use of ebib-export-to-db and
509         ebib-export-to-file.
511 2007-03-20  Joost Kremers  <joostkremers@yahoo.com>
513         * ebib.el (ebib-edit-field): changed to unconditionally add braces
514         around the text the user enters. Formerly, this was done through
515         from-raw, which meant that if the user typed braces around the
516         text, these would disappear.
518 2007-03-19  Joost Kremers  <joostkremers@yahoo.com>
520         * ebib.el (add-to-listq): added a test for Emacs < 22.
521         (ebib-index-mode-map): removed 'ebib-index-mode-map argument to
522         make-keymap. Emacs officially doesn't even allow it, and in XEmacs
523         it's optional.
524         (ebib-entry-mode-map): same.
525         (ebib-strings-mode-map): same.
526         (ebib-help-mode-map): same.
527         (ebib-semicolon-map): new.
528         (ebib-index-mode-map): added ";" key.
529         (ebib-remove-entry-from-db): bug fix: would delete the key of the
530         current entry from the keys list, regardless of which entry was
531         actually deleted.
532         (ebib-semicolon-map): added "d" key.
533         (ebib-delete-marked-entries): new.
534         (ebib-entry-mode-map): bindings of C-x b and C-x k changed to
535         'undefined.
536         (disabled): removed. The predefined function undefined does the
537         same thing.
539 2007-03-13  Joost Kremers  <joostkremers@yahoo.com>
541         * ebib.el (ebib-filter-to-virtual-db): removed the check for the
542         `type' field. What was actually meant was the `type*' field, and
543         since this is not in ebib-unique-field-list anyway, the user isn't
544         able to filter on it.
546 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
548         * ebib.el (ebib-mark-entry): added again for the 1.3 branch.
550 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
552         * ebib.el: ebib 1.2.0 released.
554 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
556         * ebib.el (ebib-mark-entry): removed in preparation for release.
558 2007-03-12  Joost Kremers  <joostkremers@yahoo.com>
560         * ebib.el (ebib-print-database): bugfix: if ebib-print-tempfile is
561         set to "", which is its default value, the body of if-str would
562         not be executed.
563         (ebib-latex-database): same.
565 2007-03-10  Joost Kremers  <joostkremers@yahoo.com>
567         * ebib.el (ebib-latex-database): new.
568         (ebib-print-preamble): new.
569         (ebib-print-multiline): new.
570         (ebib-latex-preamble): new.
571         (ebib-print-tempfile): new.
572         (ebib-print-database): modified to use ebib-print-preamble,
573         ebib-print-multiline and ebib-print-tempfile.
574         (ebib-latex-database): added real-db to ebib-execute-when.
575         (ebib-timestamp-format): new.
576         (ebib-insert-entry): modified to use format-time-string and ebib-timestamp-format.
577         (ebib-format-entry): same.
578         (ebib-yank-field-contents): renamed from ebib-paste-field-contents.
580 2007-03-08  Joost Kremers  <joostkremers@yahoo.com>
582         * ebib.el (ebib-print-database): new.
584 2007-03-06  Joost Kremers  <joostkremers@yahoo.com>
586         * ebib.el (ebib-index-scroll-down): new. replaces ebib-entry-page-up.
587         (ebib-index-scroll-up): new. replaces ebib-entry-page-down.
588         (ebib-follow-crossref): new.
589         (ebib-index-mode-map): added "F" key.
591 2007-03-02  Joost Kremers  <joostkremers@yahoo.com>
593         * ebib.el (ebib-delete-entry): removed optional argument
594         entry-key, as it wasn't used at all.
596 2007-03-01  Joost Kremers  <joostkremers@yahoo.com>
598         * ebib.el (ebib-paste-field-contents): sets this-command to t if
599         called illegally. that way, a second consecutive call to this
600         function is also recognised as illegal.
602 2007-02-26  Joost Kremers  <joostkremers@yahoo.com>
604         * ebib.el (ebib-paste-field-contents): doc string slightly expanded.
606 2007-02-25  Joost Kremers  <joostkremers@yahoo.com>
608         * ebib.el (ebib-paste-field-contents): added test for crossref field.
609         (ebib-paste-field-contents): modified so that repeatedly calling
610         this command walks around the kill ring, just like C-y/M-y.
612 2007-02-23  Joost Kremers  <joostkremers@yahoo.com>
614         * ebib.el (ebib-move-to-field): bug fix: if the field being moved
615         to is type*, used to search for 'type', causing confusion with an
616         actual type field (e.g. in the entry type incollection.) now just
617         moves to (point-min).
618         (ebib-set-modified): bug fix: the modification flag of the index
619         buffer would be (re)set, regardless of whether it actually holds
620         the database whose modification flag is being (re)set.
622 2007-02-22  Joost Kremers  <joostkremers@yahoo.com>
624         * ebib.el (ebib-execute-when): changed so that it does not produce
625         a spurious and if the envs list of a form only contains one element.
627 2007-02-21  Joost Kremers  <joostkremers@yahoo.com>
629         * ebib.el (ebib-print-filter): changed the argument of interactive
630         from "p" to "P", to obtain the raw prefix argument.
631         (ebib-save-current-database): changed message to error.
632         (ebib-print-filter): added a default-clause to ebib-execute-when,
633         to produce a beep.
634         (ebib-prev-entry): same.
635         (ebib-next-entry): same.
636         (ebib-add-entry): same.
637         (ebib-goto-first-entry): same.
638         (ebib-goto-last-entry): same.
639         (ebib-edit-keyname): same.
640         (ebib-mark-entry): same.
641         (ebib-entry-page-up): same.
642         (ebib-entry-page-down): same.
643         (ebib-write-database): same.
644         (ebib-delete-entry): same.
645         (ebib-select-entry): same.
646         (ebib-export-entry): same.
647         (ebib-search): same.
648         (ebib-search-next): same.
649         (ebib-edit-strings): same.
650         (ebib-edit-preamble): same.
651         (ebib-export-preamble): same.
652         (ebib-virtual-db-and): same.
653         (ebib-virtual-db-or): same.
654         (ebib-virtual-db-not): same.
656 2007-02-20  Joost Kremers  <joostkremers@yahoo.com>
658         * ebib.el (ebib-filter-to-virtual-db): fixed a bug: the additional
659         fields weren't included in the collection.
660         (ebib-edit-field): spurious progn removed.
661         (ebib-execute-helper): wrapped in an eval-and-compile because
662         otherwise XEmacs complains that the symbol ebib-execute-helper's
663         value as function is void.
664         (safe-write-region): new. GNU Emacs has an optional argument to
665         write-region that can be used to make sure the user doesn't
666         inadvertently overwrite an already existing file. XEmacs does not
667         have this argument.
668         (ebib-write-database): modified to use safe-write-region.
669         (ebib-insertion-strings): changed the default value from nil to
670         '((1 . "\\cite{%s}")).
672 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
674         * ebib.el (ebib-index-mode-map): changed binding for
675         ebib-merge-bibtex-file from "m" to "M".
676         (ebib-index-mode-map): added binding "m" for ebib-mark-entry.
677         (ebib-mark-entry): new.
678         (ebib-marked-face): new. needed to accommodate xemacs. there must
679         be a better way to do this... Note that in xemacs, i know of no
680         better way than to use '(face highlight) for both the overlay
681         marking the current entry and to mark selected entries. that means
682         that you cannot tell if the current entry is selected or not. gnu
683         emacs has highlight and :inverse-video. (though the former may be
684         obsoleted at some point?)
685         (ebib-fill-index-buffer): changed to accommodate xemacs. (see
686         comment in the source.)
687         (ebib-index-buffer-help): updated.
688         (ebib-execute-when): new.
689         (ebib-execute-helper): new.
690         (when-entries): removed. its functionality is now covered by
691         ebib-execute-when.
692         (ebib-write-database): modified to use ebib-execute-when and if-str.
693         (ebib-export-entry): modified to use ebib-execute-when. also added
694         a check to make sure that the goal database is not virtual.
695         (ebib-export-preamble): same.
696         (ebib-export-all-strings): added a check to make sure the goal
697         database is not virtual.
698         (ebib-export-string): same.
699         (ebib-prev-entry): modified to use ebib-execute-when.
700         (ebib-next-entry): same.
701         (ebib-add-entry): same.
702         (ebib-close-database): same.
703         (ebib-goto-first-entry): same.
704         (ebib-goto-last-entry): same.
705         (ebib-edit-entry): same.
706         (ebib-edit-keyname): same.
707         (ebib-entry-page-up): same.
708         (ebib-entry-page-down): same.
709         (ebib-save-database): same.
710         (ebib-save-current-database): same.
711         (ebib-delete-entry): same.
712         (ebib-remove-key-from-buffer): same.
713         (ebib-select-entry): same.
714         (ebib-search): same.
715         (ebib-search-next): same.
716         (ebib-edit-strings): same.
717         (ebib-edit-preamble): same.
718         (ebib-next-database): same.
719         (ebib-prev-database): same.
720         (ebib-virtual-db-and): same.
721         (ebib-virtual-db-or): same.
722         (ebib-virtual-db-not): same.
723         (ebib-print-filter): same.
725 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
727         * ebib.el: ebib-1.1.4 released.
729 2007-02-19  Joost Kremers  <joostkremers@yahoo.com>
731         * ebib.el (ebib-filter-to-virtual-db): changed the collection to
732         contain strings rather than symbols, because xemacs requires that.
734 2007-02-18  Joost Kremers  <joostkremers@yahoo.com>
736         * ebib.el (add-to-listq): new. introduced mainly because xemacs
737         doesn't allow the fourth argument to add-to-list. (actually, i'm
738         not sure if emacs 21.4 supports it...)
740 2007-02-13  Joost Kremers  <joostkremers@yahoo.com>
742         * ebib.el (ebib-quit): set ebib-strings-highlight to nil.
744 2007-02-11  Joost Kremers  <joostkremers@yahoo.com>
746         * ebib.el (ebib-unique-field-list): new. used for TAB-completion
747         in ebib-filter-to-virtual-db.
748         (ebib-set-entry-types-hash): modified to set
749         ebib-unique-field-list.
750         (ebib-key): modified to keep the cond statement out of the
751         expansion.
752         (ebib-create-new-database): modified to take an optional database
753         argument: if supplied, returns a copy of that database.
754         (ebib-index-mode-map): added "&", "|", "~" and "V".
755         (ebib-virtual-db-and): new.
756         (ebib-virtual-db-or): new.
757         (ebib-virtual-db-not): new.
758         (ebib-filter-to-virtual-db): new.
759         (ebib-create-virtual-db): new.
760         (contains): new.
761         (ebib-run-filter): new.
762         (ebib-print-filter): new.
763         (ebib-write-database): modified to handle virtual databases.
764         (ebib-edit-entry): modified to exclude virtual databases.
765         (ebib-edit-keyname): same.
766         (ebib-save-current-database): same.
767         (ebib-save-database): same.
768         (ebib-merge-bibtex-file): same
769         (ebib-add-entry): same.
770         (ebib-delete-entry): same.
771         (ebib-export-entry): same.
772         (ebib-edit-strings): same.
773         (ebib-edit-preamble): same.
774         (ebib-export-preamble): same.
775         (ebib-import): same.
776         (ebib-fill-entry-buffer): modified so that it does not result in
777         an error if the current entry does not exist. This is needed in
778         case the user deletes an entry from a database that has a virtual
779         database that containe that entry.
780         (ebib-format-entry): put (eq key 'timestamp) first in the and
781         clause. no need to check timestamp and ebib-use-timestamp for any
782         other field.
783         (ebib-write-database): modified so that when a virtual database is
784         written to a file, it doesn't attempt to put an entry that is
785         still in a virtual database's keys-list but has been deleted in
786         the source database into the new database. (note: this is still
787         not the proper way to handle this. we need to find a clean way to
788         handle the consequences of an entry being deleted in a source
789         database.)
791 2007-02-10  Joost Kremers  <joostkremers@yahoo.com>
793         * ebib.el (when-entries): included a declare indent statement.
794         (with-buffer-writable): same.
795         (edb): added fields `name' and `virtual'.
796         (ebib-fill-index-buffer): modified to use edb-name.
797         (ebib-load-bibtex-file): same.
798         (ebib-write-database): same.
799         (ebib-search-in-entry): added optional field argument.
801 2007-02-04  Joost Kremers  <joostkremers@yahoo.com>
803         * ebib.el (ebib-goto-next-set): adapted to make use of
804         ebib-move-to-field.
805         (ebib-goto-prev-set): same.
806         (defentry): removed.
807         (ebib-preload): removed.
808         (ebib-additional-fields): removed.
809         (ebib-insert-entry): modified to insert a timestamp, depending on
810         the argument TIMESTAMP and on the setting of EBIB-USE-TIMESTAMP.
811         (ebib-add-entry): modified: it no longer adds a timestamp
812         itself (as it did after the change two days ago) but just requests
813         ebib-insert-entry to do so.
814         (ebib-read-entry): modified to request insertion of a timestamp.
815         (ebib-edit-keyname): modified so as to explicitly NOT insert a
816         timestamp.
817         (ebib-export-entry): modified so as to request insertion of a
818         timestamp, both when exporting to another database and to a file.
819         (ebib-find-bibtex-entries): modified: timestamp argument
820         added. This argument is simply passed on to ebib-read-entry.
821         (ebib-load-bibtex-file): modified so that no timestamp is inserted
822         into the entries read from file.
823         (ebib-import): modified to request insertion of a timestamp.
824         (ebib-format-entry): modified to insert a timestamp if required.
825         (ebib-export-entry): fixed a bug that kept ebib-export-filename
826         from being set.
827         (ebib-export-preamble): same.
829 2007-02-03  Joost Kremers  <joostkremers@yahoo.com>
831         * ebib.el (ebib-format-fields): modified to check if hidden fields
832         should be shown.
833         (ebib-init): added a line to make timestamp a hidden field.
834         (ebib-hide-hidden-fields): new.
835         (ebib-toggle-hidden): new.
836         (ebib-move-to-field): new.
837         (ebib-find-visible-field): new.
838         (ebib-prev-field): rewritten to make use of ebib-move-to-field.
839         (ebib-next-field): same.
840         (ebib-goto-first-field): same.
841         (ebib-goto-last-field): same.
843 2007-02-02  Joost Kremers  <joostkremers@yahoo.com>
845         * ebib.el (ebib-use-timestamp): new.
846         (ebib-add-entry): modified so that it adds a timestamp if
847         ebib-use-timestamp is set.
849 2007-01-23  Joost Kremers  <joostkremers@yahoo.com>
851         * ebib.el (ebib-keys-window-size): new.
852         (ebib): modified to use ebib-keys-window-size.
853         (ebib-entry-page-up): same.
854         (ebib-entry-page-down): same.
855         (ebib-customize): new.
856         (ebib-index-mode-map): added "C" key command.
858 2007-01-10  Joost Kremers  <joostkremers@yahoo.com>
860         * ebib.el (ebib): added :prefix tag to defgroup.
862 2006-12-17  Joost Kremers  <joostkremers@yahoo.com>
864         * ebib.el (ebib-export-preamble): bug (no message being given
865         after exporting the preamble) fixed.
867 2006-12-13  Joost Kremers  <joostkremers@yahoo.com>
869         * ebib.el: Ebib 0.28 released.
871 2006-12-12  Joost Kremers  <joostkremers@yahoo.com>
873         * ebib.el (ebib-edit-crossref): fixed a bug that caused
874         ebib-set-modified not to be executed.
875         (ebib-set-modified): fixed. save-excursion should not be part of
876         the body of UNLESS.
877         (ebib-quit): ebib-default-type no longer set to nil. (quiting and
878         restarting ebib would leave it set to nil.)
879         (ebib-save-xrefs-first): new.
880         (ebib-compare-xrefs): new.
881         (ebib-format-database): modified to put crossreferencing entries
882         first.
884 2006-11-13  Joost Kremers  <joostkremers@yahoo.com>
886         * ebib.el: Ebib 0.27 released.
888 2006-11-01  Joost Kremers  <joostkremers@yahoo.com>
890         * ebib.el (ebib-paste-field-contents): combined two nested if's
891         into one or'ed.
893 2006-10-30  Joost Kremers  <joostkremers@yahoo.com>
895         * ebib.el (ebib-format-database): added argument db.
896         (ebib-format-strings): added argument db.
897         (ebib-sort-order): new.
898         (ebib-entry<): new.
899         (ebib-get-sortstring): new.
900         (ebib-insertion-strings): changed to an alist, so that multiple
901         insertion strings can be defined.
902         (ebib-insert-bibtex-key): modified to use the new ebib-insertion-strings.
904 2006-10-24  Joost Kremers  <joostkremers@yahoo.com>
906         * ebib.el (ebib-insert-bibtex-key): changed to use a customisable
907         insertion string.
908         (ebib-insertion-string): new.
910 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
912         * ebib.el: Ebib 0.26 released.
913         
914 2006-10-23  Joost Kremers  <joostkremers@yahoo.com>
916         * ebib.el (ebib-set-entry-types-hash): new, to make customising
917         the entry types through the customisation buffer possible.
918         (defentry): modified, so that an entry defined with defentry is
919         also added to the list ebib-entry-types.
920         (ebib-additional-fields): renamed from ebib-ign-fields; modified
921         to check whether a field is already in the list before it is
922         added, so that it is not added twice when Ebib is closed and
923         restarted in the same Emacs session.
924         (ebib-find-bibtex-entries): added modify-syntax-entry, so that
925         users can type (e.g.) "o to create umlaut-o.
926         (ebib-format-database): use mapc on edb-keys-list rather than
927         maphash on edb-database, so that the entries are saved in
928         alphabetical order. (Following a suggestion of Thomas Schmitz.)
930 2006-10-14  Joost Kremers  <joostkremers@yahoo.com>
932         * ebib.el: added customisation group ebib.
934 2006-10-01  Joost Kremers  <joostkremers@yahoo.com>
936         * ebib.el (ebib-remove-key-from-buffer): added when-entries, to
937         get rid of an error message when the last entry is deleted.
938         (ebib-find-end-of-field): fixed a nasty bug that occurred when
939         reading a .bib-file with an entry in which the last field is raw
940         and is immediately followed by the closing brace. Thanks to Thomas
941         Schmitz for bringing this to my attention.
943 2006-09-14  Joost Kremers  <joostkremers@yahoo.com>
945         * ebib.el (ebib-ign-fields): code, uri and location removed.
947 2006-08-29  Joost Kremers  <joostkremers@yahoo.com>
949         * ebib.el (ebib-find-bibtex-entries): changed to return a list of
950         the number of entries and number of strings found, and a boolean
951         for whether a preamble was found.
952         (ebib-load-bibtex-file): adapted to accept the new return value of
953         ebib-find-bibtex-entries.
954         (ebib-merge-bibtex-file): same.
955         (ebib-import): added.
957 2006-08-28  Joost Kremers  <joostkremers@yahoo.com>
959         * ebib.el (ebib-import): added.
961 2006-08-25  Joost Kremers  <joostkremers@yahoo.com>
963         * ebib.el: rearranged some of the variable definitions, so that
964         the entry types can be defined in ebib.el rather than in .ebibrc.
965         (ebib-index-mode-map): put the key definitions back in.
966         (ebib-entry-mode-map): same.
967         (ebib-strings-mode-map): same.
969 2006-08-18  Joost Kremers  <joostkremers@yahoo.com>
971         * ebib.el (ebib): renamed the keys buffer to index buffer and the
972         fields buffer to entry buffer.
973         (ebib-key): new. to enable customisation of the command keys
974         through .ebibrc.
975         (ebib-index-mode-map): moved key definitions to .ebibrc.
976         (ebib-entry-mode-map): same.
977         (ebib-strings-mode-map): same.
979 2006-08-17  Joost Kremers  <joostkremers@yahoo.com>
981         * ebib.el (ebib-add-entry): rewrote to use ebib-insert-entry.
983 2006-08-15  Joost Kremers  <joostkremers@yahoo.com>
985         * ebib.el (ebib-delete-entry): split into three functions.
986         (ebib-remove-key-from-buffer): split off from ebib-delete-entry.
987         (ebib-remove-entry-from-db): split off from ebib-delete-entry.
988         (ebib-edit-keyname): new. because it partially does the same as
989         ebib-delete-entry, i split up the latter.
991 2006-08-13  Joost Kremers  <joostkremers@yahoo.com>
993         * ebib.el (ebib-edit-field): added special clause for the annote
994         field, so that the user is dropped into the multiline edit buffer.
996 2005-11-18  Joost Kremers  <joostkremers@yahoo.com>
998         * ebib.el (ebib-read-string): changed so that it does not store
999         the braces or quotes surrounding the string.
1000         (ebib-match-quote-forward): added a check to make sure that when a
1001         double quote is found at the search limit, this isn't mistakenly
1002         taken as the matching quote if it is escaped by a backslash.
1004 2005-11-17  Joost Kremers  <joostkremers@yahoo.com>
1006         * ebib.el (ebib-fields-mode-map): bound C-x k to
1007         ebib-quit-fields-buffer.
1008         (ebib-strings-mode-map): bound C-x b to ebib-lower, and C-x k to
1009         ebib-quit-strings-buffer.
1010         
1011 2005-11-05  Joost Kremers  <joostkremers@yahoo.com>
1013         * ebib.el (ebib-load-bibtex-file): use file-readable-p instead of
1014         file-exits-p.
1016 2005-11-04  Joost Kremers  <joostkremers@yahoo.com>
1018         * ebib.el (ebib-format-fields): new. formats the fields and calls
1019         a function to output them.
1020         (ebib-fill-fields-buffer): moved the actual formatting and
1021         printing code to ebib-format-fields.
1022         (ensure-extension): new. make sure a filename has a specific
1023         extension.
1024         (ebib-load-bibtex-file): changed to use ensure-extension.
1025         (remove-from-string): changed to function.
1026         (symbol-or-string): same.
1027         (ebib-extract-bibfile): new. looks for a \bibliography command in
1028         the current buffer and reads its filename.
1029         (ebib-get-db-from-filename): new. retrieve a bibtex database based
1030         on filename.
1031         (ebib-get-local-database): new. finds a database to associate with
1032         the LaTeX file in the current buffer.
1033         (ebib-insert-bibtex-key): removed option to use a prefix
1034         argument. instead uses ebib-get-local-database to select a
1035         database to get the keys from.
1036         (ebib-entry-summary): new. reads the key at point and displays its
1037         entry in a *Help* buffer.
1039 2005-11-03  Joost Kremers  <joostkremers@yahoo.com>
1041         * ebib.el (ebib-prefix): changed to function.
1042         (next-elem): same.
1043         (prev-elem): same.
1044         (ebib-get-obl-fields): same.
1045         (ebib-get-opt-fields): same.
1047 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
1049         * ebib.el (when-entries): new. execute BODY when there is a
1050         database open and it contains entries.
1051         (ebib-prev-entry): test whether there are entries in the current
1052         database.
1053         (ebib-next-entry): same.
1054         (ebib-prev-entry): test whether there are entries in the current
1055         database.
1056         (ebib-next-entry): same.
1057         (ebib-goto-first-entry): same.
1058         (ebib-goto-last-entry): same.
1059         (ebib-edit-entry): same.
1060         (ebib-entry-page-up): same.
1061         (ebib-entry-page-down): same.
1062         (ebib-delete-entry): same.
1063         (ebib-select-entry): same.
1064         (ebib-export-entry): same.
1065         (ebib-search-next): same.
1066         (ebib-edit-strings): test whether a database is open.
1067         (ebib-edit-preamble): same.
1068         (ebib-search): test whether there are entries in the current
1069         database, and ask for search string inside the function, rather
1070         than in (interactive).
1071         (ebib-export-preamble): test whether a database is open.
1072         (ebib-next-database): same.
1073         (ebib-prev-database): same.
1074         (disabled): new. does nothing except beep. used to disable C-x k
1075         and C-x b in the fields and strings buffers.
1077 2005-11-02  Steve Youngs  <steve@sxemacs.org>
1079         * ebib.el (ebib-init): Don't do anything with `ebib-keys-mode-map'
1080         here.
1081         (ebib-initial-keys-map): Removed.
1082         (ebib-full-keys-map): Removed.
1083         (ebib-keys-mode-map): Merge them into here.
1084         (ebib-load-bibtex-file): Don't do anything with
1085         `ebib-keys-mode-map' here.
1086         (ebib-close-database): Ditto.
1087         (ebib-fill-keys-buffer): Ditto.
1088         (ebib-switch-to-database-nth): Make it compatible with
1089         GNU/Emacs. 
1091 2005-11-02  Joost Kremers  <joostkremers@yahoo.com>
1093         * ebib.el (ebib-keys-mode): added C-x k and C-x b redefinitions
1094         to ebib-initial-keys-map.
1095         (ebib-fields-mode): same.
1096         (ebib-strings-mode): same.
1097         (ebib-t): removed.
1099 2005-11-02  Steve Youngs  <steve@sxemacs.org>
1101         * ebib.el (ebib-init): Copy the "initial keys" keymap into
1102         `ebib-keys-mode-map'.
1103         (ebib-initial-keys-map): Define all the keys inside the variable
1104         definition instead of at top level.
1105         (ebib-full-keys-map): Ditto.  Also make this keymap's parent be
1106         `ebib-initial-keys-map' to save on double defining some keys.
1107         (ebib-switch-to-database-nth): New.  Convenience function for
1108         switching between databases.
1109         (ebib-fill-keys-buffer): Set the local keymap to `ebib-keys-mode-map'.
1110         (ebib-load-bibtex-file): Copy the "full keys" keymap into
1111         `ebib-keys-mode-map'.
1112         (ebib-close-database): Copy the "initial keys" keymap into
1113         `ebib-keys-mode-map' and reset the local map.
1114         (ebib-fields-mode-map): Define the keys in the variable definition
1115         instead of at top level.
1116         (ebib-strings-mode-map): Ditto.
1117         (ebib-help-mode-map): Ditto.