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