1 2008-04-11 Joost Kremers <joostkremers@yahoo.com>
3 * ebib.el (ebib-add-entry): inserted a space in the format string
4 that puts the new entry key into the buffer. this way
5 ebib-set-index-highlight doesn't put the end of the highlight at
8 2008-03-26 Joost Kremers <joostkremers@yahoo.com>
10 * ebib.el (ebib-index-mode): set truncate-lines to t, which works
11 better if ebib-index-dislay-fields is set.
12 (ebib-set-index-highlight): changed so that it highlights the
13 entire line if ebib-index-display-fields is set.
15 2008-03-19 Joost Kremers <joostkremers@yahoo.com>
17 * ebib.el (ebib-display-entry): added set-buffer.
19 2008-03-18 Joost Kremers <joostkremers@yahoo.com>
21 * ebib.el (ebib-index-display-fields): new.
22 (ebib-display-entry): new.
23 (ebib-fill-index-buffer): modified so as to make use of
25 (ebib-edit-keyname): same.
26 (ebib-set-index-highlight): changed end-of-line into
27 skip-chars-forward because of ebib-index-display-fields.
28 (ebib-select-entry): same.
30 2007-11-15 Joost Kremers <joostkremers@yahoo.com>
32 * ebib.el (ebib-syntax-table): modified the syntax classes for ()
33 and [] to punctuation character. Not that it really matters, though.
35 2007-11-10 Joost Kremers <joostkremers@yahoo.com>
37 * ebib.el: removed empty lines after the first line of doc
38 strings. (this is apparently not an Emacs convention...)
39 (ebib-read-entry): changed warning message for duplicate entries.
40 (ebib-read-string): same.
42 2007-11-09 Joost Kremers <joostkremers@yahoo.com>
44 * ebib.el (ebib-match-quote-forward): reworked a bit.
46 (ebib-index-mode-map): added "l" key, bound to ebib-show-log.
47 (ebib-log-mode-map): new.
49 (ebib-quit-log-buffer): new.
50 (ebib-match-delim-forward): new.
51 (ebib-read-string): modified to use ebib-match-delim-forward.
52 (ebib-read-preamble): added a test to check for the result of
53 ebib-match-paren-forward.
54 (ebib-find-bibtex-entries): added test to check if
55 ebib-read-preamble returns non-nil.
56 (ebib-find-end-of-field): modified to use ebib-match-delim-forward.
57 (ebib-create-buffers): added initial message to the log buffer.
59 2007-11-08 Joost Kremers <joostkremers@yahoo.com>
61 * ebib.el (ebib-lower): added bury-buffer command for ebib-log-buffer.
62 (ebib-quit): added kill-buffer commands for ebib-log-buffer and ebib-strings-buffer.
64 2007-11-07 Joost Kremers <joostkremers@yahoo.com>
66 * ebib.el (ebib-merge-bibtex-file): added final call to ebib-log,
68 (ebib-find-bibtex-entries): added "Line" to warning message.
69 (ebib-read-string): same.
70 (ebib-read-entry): same.
71 (ebib-log): added save-excursion, so that the ebib log buffer is
72 only current during this function. also modified to no longer set
73 ebib-log-error to 0 unconditionally, instead checks if it's still
74 nil. also modified to use cond.
75 (ebib-match-brace-forward): new. this function handles braces {}
77 (ebib-match-paren-forward): modified to handle parenthesis () and
78 braces {} differently.
79 (ebib-match-quote-forward): modified: logs an error when no
80 closing quote is found, and moves point to the char after the
83 2007-11-07 Joost Kremers <joostkremers@yahoo.com>
85 * ebib.el (ebib-log-error): new.
86 (ebib-create-buffers): added creating the log buffer.
87 (ebib-find-bibtex-entries): modified to use ebib-log.
88 (ebib-read-string): same.
89 (ebib-read-entry): same.
91 2007-11-06 Joost Kremers <joostkremers@yahoo.com>
93 * ebib.el (ebib-customize): added doc string.
94 (ebib-log-buffer): new.
96 (ebib-load-bibtex-file): modified to use ebib-log.
97 (ebib-merge-bibtex-file): same.
99 2007-11-02 Joost Kremers <joostkremers@yahoo.com>
101 * ebib.el (ebib-syntax-table): new.
102 (ebib-load-bibtex-file): modified to use with-syntax-table.
103 (ebib-merge-bibtex-file): same.
105 (ebib-store-multiline-text): check-parens removed.
107 2007-10-31 Joost Kremers <joostkremers@yahoo.com>
109 * ebib.el (ebib-init): removed test whether ~/.ebibrc exists; use
110 second (optional) argument to load instead.
112 2007-10-29 Joost Kremers <joostkremers@yahoo.com>
114 * ebib.el (ebib-marked-face): turned into a customisable option.
115 (ebib-fill-index-buffer): modified to use ebib-marked-face as a
116 face, rather than a variable.
117 (ebib-mark-entry): same.
119 2007-10-29 Joost Kremers <joostkremers@yahoo.com>
121 * ebib.el (ebib-fill-index-buffer): changed mapcar to mapc
122 (prevents compiler warning). fix provided by Leo
123 <sdl.web at gmail.com>.
124 (ebib): added autoload cookie. suggested by Leo
125 <sdl.web at gmail.com>.
126 (ebib-mark-entry): fixed typo: '(face ,ebib-marked-face) to `(face
127 ,ebib-marked-face). fix provided by Leo <sdl.web at gmail.com>.
129 2007-10-22 Joost Kremers <joostkremers@yahoo.com>
131 * ebib.el (ebib): modified to store the buffer from which ebib is
132 called in ebib-push-buffer, so that it becomes the default for
133 pushing entries. Thanks to Sinisa Pajevic for the suggestion.
135 2007-10-20 Joost Kremers <joostkremers@yahoo.com>
137 * ebib.el (ebib-redisplay-current-field): modified. now redisplays
138 the entire entry buffer is the current field is crossref. (cutting
139 the value from the crossref field would leave the inherited field
141 (ebib-import): modified to use insert-buffer-substring, rather
142 than buffer-string and insert. this way, there is no need to
143 temporarily store the buffer contents in a variable.
144 (ebib-get-field-highlighted): modified so that it doesn't produce
145 an error if an entry contains a crossref to an entry that does not
147 (ebib-get-local-databases): variable bibfiles removed from the let.
149 2007-10-20 Joost Kremers <joostkremers@yahoo.com>
151 * ebib.el (ebib-local-bibtex-filenames): renamed from
152 ebib-local-bibtex-filname. this is now a list of strings, rather
153 than a string. thanks to Sinisa Pajevic for pointing out that a
154 \bibliography command can contain more than one .bib file.
155 (ebib-extract-bibfiles): removed.
156 (ebib-get-local-databases): modified to return a list of database
157 filenames. also now uses insert-buffer-substring, rather than a
158 combination of buffer-string and insert.
159 (ebib-insert-bibtex-key): modified so that it can handle multiple
160 bibtex files. this reflects the change to
161 ebib-local-bibtex-filenames.
162 (ebib-entry-summary): same.
164 2007-10-19 Joost Kremers <joostkremers@yahoo.com>
166 * ebib.el (ebib-push-entry-key): new. pushes the current entry
167 key, or the marked entry keys, to a buffer, using
168 ebib-insertion-strings. thanks to Sinisa Pajevic for suggesting
170 (ebib-key "p"): changed to ebib-push-entry-key.
171 (ebib-key "r"): new. assigned to ebib-edit-preamble.
172 (ebib-prefixed-functions): ebib-push-entry-key added.
173 (ebib-push-buffer): new. holds the name of the last buffer to
174 which an entry was pushed, to present it as default in the next
176 (ebib-insertion-strings): modified default value: 0 added.
178 2007-10-11 Joost Kremers <joostkremers@yahoo.com>
180 * ebib.el (ebib-get-field-highlighted): modified so as to show
181 field values inherited from a cross-referenced entry.
182 (ebib-crossref-face): new.
183 (ebib-edit-crossref): modified to redisplay the entire entry
184 buffer, not just the current field.
186 2007-07-29 Joost Kremers <joostkremers@yahoo.com>
188 * ebib.el (ebib-store-multiline-text): added a check to make sure
189 the text in the buffer doesn't contain unbalanced braces.
190 (ebib-filter-to-virtual-db): changed to give more feedback in the
191 minibuffer about what the user is doing.
193 2007-06-26 Joost Kremers <joostkremers@yahoo.com>
195 * ebib.el (ebib-insert-bibtex-key): changed to show the cite
196 command that the user has selected through the prefix argument.
198 2007-04-26 Joost Kremers <joostkremers@yahoo.com>
200 * ebib.el (ebib-standard-url-field): doc string modified.
202 2007-04-06 Joost Kremers <joostkremers@yahoo.com>
204 * ebib.el (ebib-allow-identical-fields): new.
205 (ebib-find-bibtex-fields): modified so as to use
206 ebib-allow-identical-fields.
208 2007-03-30 Joost Kremers <joostkremers@yahoo.com>
210 * ebib.el (ebib-url-regexp): bug fix: removed \l from default
213 2007-03-29 Joost Kremers <joostkremers@yahoo.com>
215 * ebib.el: Ebib 1.3.0 released.
217 2007-03-29 Joost Kremers <joostkremers@yahoo.com>
219 * ebib.el (ebib-index-mode-map): added "u" key.
220 (ebib-url-field): new.
221 (ebib-url-regexp): new.
222 (ebib-browse-url): new.
223 (ebib-call-browser): new.
224 (ebib-entry-mode-map): added "u" key.
225 (ebib-browse-url-in-field): new.
226 (ebib-call-browser-command): new.
228 2007-03-28 Joost Kremers <joostkremers@yahoo.com>
230 * ebib.el (raw-p): regexp "\".*?\" replaced with
231 "\"[^\"]*?\"". The dot doesn't match \n, so a multiline string
232 enclosed by double quotes was incorrectly recognised as a raw
235 2007-03-27 Joost Kremers <joostkremers@yahoo.com>
237 * ebib.el (ebib-export-entry): ebib-execute-when
238 removed. ebib-marked-p replaced with ebib-called-with-prefix.
239 (ebib-export-single-entry): added ebib-execute-when.
240 (ebib-export-marked-entries): same.
241 (ebib-prefix-map): new. (actually, this is ebib-semicolon-map
242 reintroduced under a new name.)
243 (ebib-index-mode-map): binding of the prefix key ";" changed to
245 (ebib-key): modified so that if the user redefines a key in
246 ebib-index-mode-map, it checks whether the function is bound in
247 ebib-prefix-map as well, and if so, binds it to the same
248 key. Furthermore, if the user unbinds a key, it is unbound in
249 ebib-prefix-map as well.
250 (ebib-marked-p): removed.
251 (ebib-prefixed-functions): new.
252 (ebib-prefix-key): new.
253 (ebib-key): modified so that it unsets the current prefix key if
254 the user redefines the prefix key with mark-prefix.
255 (ebib-index-mode-map): key bindings no longer done in the defvar
256 definition, but at top level with ebib-key. Using ebib-key has the
257 advantage that ebib-prefix-map is automatically set up correctly
260 2007-03-26 Joost Kremers <joostkremers@yahoo.com>
262 * ebib.el (ebib-called-with-prefix): new.
263 (ebib-marked-p): new.
264 (ebib-prefix-key): new.
265 (ebib-key): added clause for mark-prefix.
266 (ebib-delete-marked-entries): removed.
267 (ebib-delete-entry): modified to handle the prefix key.
268 (ebib-export-entry): modified to call either of two helper
269 functions, depending on whether it was called with or without
271 (ebib-export-single-entry): new. helper function for
273 (ebib-export-marked-entries): changed into helper function for
275 (ebib-print-database): removed.
276 (ebib-print-marked-entries): removed.
277 (ebib-semicolon-map): removed.
278 (ebib-index-mode-map): binding for L changed to
279 ebib-latex-entries, and binding for P changed to
281 (ebib-print-entries): made interactive and modified to handle
283 (ebib-latex-database): removed.
284 (ebib-latex-marked-entries): removed.
285 (ebib-latex-entries): made interactive and modified to handle
287 (ebib-mark-all): removed.
289 2007-03-25 Joost Kremers <joostkremers@yahoo.com>
291 * ebib.el (ebib-remove-entry-from-db): modified so that a deleted
292 entry is also deleted from edb-marked-entries if it's there. This
293 avoids problems when the user deletes a marked entry, and also
294 when he renames the entry key of a marked entry.
295 (ebib-delete-marked-entries): no longer sets edb-marked-entries to
296 nil, as the entries are removed one by one by
297 ebib-remove-entry-from-db.
298 (ebib-edit-keyname): modified so that it marks the renamed entry
299 if it was marked before the renaming.
300 (ebib-unmark-all): renamed to ebib-mark-all.
301 (ebib-mark-all): modified so that it marks all entries if there
302 are no marked entries.
303 (ebib-mark-entry): real-db removed from ebib-execute-when.
304 (ebib-export-entry): modified to include the entry name in the
305 messages passed to ebib-export-to-db and ebib-export-to-file.
306 (ebib-export-string): same with string abbreviation.
308 2007-03-24 Joost Kremers <joostkremers@yahoo.com>
310 * ebib.el (ebib-export-string): modified to make use of
311 ebib-export-to-db and ebib-export-to-file.
312 (ebib-export-all-strings): same.
313 (ebib-export-preamble): same.
314 (ebib-export-marked-entries): new.
315 (ebib-semicolon-map): new key "x" added.
317 (ebib-write-database): rewritten to stop XEmacs from
318 complaining. (See arch log for details.)
319 (ebib-export-to-file): modified documentation string, as it said
320 something about insert-fn that isn't correct.
321 (ebib-execute-helper): added marked-entries.
322 (ebib-delete-marked-entries): modified to use marked-entries.
323 (ebib-export-marked-entries): same.
324 (ebib-delete-marked-entries): added default clause to
326 (ebib-print-entries): new. contains most of the code of former
328 (ebib-print-database): modified to use ebib-print-entries.
329 (ebib-print-marked-entries): new.
330 (define-prefix-command): new keys "P", "L" and "m".
331 (ebib-mark-entry): modified: no longer adds the text properties to
332 the entry key in the database, just in the index buffer.
333 (ebib-fill-index-buffer): modified so that it adds a highlight to
335 (ebib-latex-entries): new. contains most of the code of former
337 (ebib-latex-database): modified to use ebib-latex-entries.
338 (ebib-latex-marked-entries): new.
339 (ebib-unmark-all): new.
341 2007-03-23 Joost Kremers <joostkremers@yahoo.com>
343 * ebib.el (ebib-export-to-db): new.
344 (ebib-export-to-file): new.
345 (ebib-export-entry): modified to make use of ebib-export-to-db and
348 2007-03-20 Joost Kremers <joostkremers@yahoo.com>
350 * ebib.el (ebib-edit-field): changed to unconditionally add braces
351 around the text the user enters. Formerly, this was done through
352 from-raw, which meant that if the user typed braces around the
353 text, these would disappear.
355 2007-03-19 Joost Kremers <joostkremers@yahoo.com>
357 * ebib.el (add-to-listq): added a test for Emacs < 22.
358 (ebib-index-mode-map): removed 'ebib-index-mode-map argument to
359 make-keymap. Emacs officially doesn't even allow it, and in XEmacs
361 (ebib-entry-mode-map): same.
362 (ebib-strings-mode-map): same.
363 (ebib-help-mode-map): same.
364 (ebib-semicolon-map): new.
365 (ebib-index-mode-map): added ";" key.
366 (ebib-remove-entry-from-db): bug fix: would delete the key of the
367 current entry from the keys list, regardless of which entry was
369 (ebib-semicolon-map): added "d" key.
370 (ebib-delete-marked-entries): new.
371 (ebib-entry-mode-map): bindings of C-x b and C-x k changed to
373 (disabled): removed. The predefined function undefined does the
376 2007-03-13 Joost Kremers <joostkremers@yahoo.com>
378 * ebib.el (ebib-filter-to-virtual-db): removed the check for the
379 `type' field. What was actually meant was the `type*' field, and
380 since this is not in ebib-unique-field-list anyway, the user isn't
381 able to filter on it.
383 2007-03-12 Joost Kremers <joostkremers@yahoo.com>
385 * ebib.el (ebib-mark-entry): added again for the 1.3 branch.
387 2007-03-12 Joost Kremers <joostkremers@yahoo.com>
389 * ebib.el: ebib 1.2.0 released.
391 2007-03-12 Joost Kremers <joostkremers@yahoo.com>
393 * ebib.el (ebib-mark-entry): removed in preparation for release.
395 2007-03-12 Joost Kremers <joostkremers@yahoo.com>
397 * ebib.el (ebib-print-database): bugfix: if ebib-print-tempfile is
398 set to "", which is its default value, the body of if-str would
400 (ebib-latex-database): same.
402 2007-03-10 Joost Kremers <joostkremers@yahoo.com>
404 * ebib.el (ebib-latex-database): new.
405 (ebib-print-preamble): new.
406 (ebib-print-multiline): new.
407 (ebib-latex-preamble): new.
408 (ebib-print-tempfile): new.
409 (ebib-print-database): modified to use ebib-print-preamble,
410 ebib-print-multiline and ebib-print-tempfile.
411 (ebib-latex-database): added real-db to ebib-execute-when.
412 (ebib-timestamp-format): new.
413 (ebib-insert-entry): modified to use format-time-string and ebib-timestamp-format.
414 (ebib-format-entry): same.
415 (ebib-yank-field-contents): renamed from ebib-paste-field-contents.
417 2007-03-08 Joost Kremers <joostkremers@yahoo.com>
419 * ebib.el (ebib-print-database): new.
421 2007-03-06 Joost Kremers <joostkremers@yahoo.com>
423 * ebib.el (ebib-index-scroll-down): new. replaces ebib-entry-page-up.
424 (ebib-index-scroll-up): new. replaces ebib-entry-page-down.
425 (ebib-follow-crossref): new.
426 (ebib-index-mode-map): added "F" key.
428 2007-03-02 Joost Kremers <joostkremers@yahoo.com>
430 * ebib.el (ebib-delete-entry): removed optional argument
431 entry-key, as it wasn't used at all.
433 2007-03-01 Joost Kremers <joostkremers@yahoo.com>
435 * ebib.el (ebib-paste-field-contents): sets this-command to t if
436 called illegally. that way, a second consecutive call to this
437 function is also recognised as illegal.
439 2007-02-26 Joost Kremers <joostkremers@yahoo.com>
441 * ebib.el (ebib-paste-field-contents): doc string slightly expanded.
443 2007-02-25 Joost Kremers <joostkremers@yahoo.com>
445 * ebib.el (ebib-paste-field-contents): added test for crossref field.
446 (ebib-paste-field-contents): modified so that repeatedly calling
447 this command walks around the kill ring, just like C-y/M-y.
449 2007-02-23 Joost Kremers <joostkremers@yahoo.com>
451 * ebib.el (ebib-move-to-field): bug fix: if the field being moved
452 to is type*, used to search for 'type', causing confusion with an
453 actual type field (e.g. in the entry type incollection.) now just
454 moves to (point-min).
455 (ebib-set-modified): bug fix: the modification flag of the index
456 buffer would be (re)set, regardless of whether it actually holds
457 the database whose modification flag is being (re)set.
459 2007-02-22 Joost Kremers <joostkremers@yahoo.com>
461 * ebib.el (ebib-execute-when): changed so that it does not produce
462 a spurious and if the envs list of a form only contains one element.
464 2007-02-21 Joost Kremers <joostkremers@yahoo.com>
466 * ebib.el (ebib-print-filter): changed the argument of interactive
467 from "p" to "P", to obtain the raw prefix argument.
468 (ebib-save-current-database): changed message to error.
469 (ebib-print-filter): added a default-clause to ebib-execute-when,
471 (ebib-prev-entry): same.
472 (ebib-next-entry): same.
473 (ebib-add-entry): same.
474 (ebib-goto-first-entry): same.
475 (ebib-goto-last-entry): same.
476 (ebib-edit-keyname): same.
477 (ebib-mark-entry): same.
478 (ebib-entry-page-up): same.
479 (ebib-entry-page-down): same.
480 (ebib-write-database): same.
481 (ebib-delete-entry): same.
482 (ebib-select-entry): same.
483 (ebib-export-entry): same.
485 (ebib-search-next): same.
486 (ebib-edit-strings): same.
487 (ebib-edit-preamble): same.
488 (ebib-export-preamble): same.
489 (ebib-virtual-db-and): same.
490 (ebib-virtual-db-or): same.
491 (ebib-virtual-db-not): same.
493 2007-02-20 Joost Kremers <joostkremers@yahoo.com>
495 * ebib.el (ebib-filter-to-virtual-db): fixed a bug: the additional
496 fields weren't included in the collection.
497 (ebib-edit-field): spurious progn removed.
498 (ebib-execute-helper): wrapped in an eval-and-compile because
499 otherwise XEmacs complains that the symbol ebib-execute-helper's
500 value as function is void.
501 (safe-write-region): new. GNU Emacs has an optional argument to
502 write-region that can be used to make sure the user doesn't
503 inadvertently overwrite an already existing file. XEmacs does not
505 (ebib-write-database): modified to use safe-write-region.
506 (ebib-insertion-strings): changed the default value from nil to
507 '((1 . "\\cite{%s}")).
509 2007-02-19 Joost Kremers <joostkremers@yahoo.com>
511 * ebib.el (ebib-index-mode-map): changed binding for
512 ebib-merge-bibtex-file from "m" to "M".
513 (ebib-index-mode-map): added binding "m" for ebib-mark-entry.
514 (ebib-mark-entry): new.
515 (ebib-marked-face): new. needed to accommodate xemacs. there must
516 be a better way to do this... Note that in xemacs, i know of no
517 better way than to use '(face highlight) for both the overlay
518 marking the current entry and to mark selected entries. that means
519 that you cannot tell if the current entry is selected or not. gnu
520 emacs has highlight and :inverse-video. (though the former may be
521 obsoleted at some point?)
522 (ebib-fill-index-buffer): changed to accommodate xemacs. (see
523 comment in the source.)
524 (ebib-index-buffer-help): updated.
525 (ebib-execute-when): new.
526 (ebib-execute-helper): new.
527 (when-entries): removed. its functionality is now covered by
529 (ebib-write-database): modified to use ebib-execute-when and if-str.
530 (ebib-export-entry): modified to use ebib-execute-when. also added
531 a check to make sure that the goal database is not virtual.
532 (ebib-export-preamble): same.
533 (ebib-export-all-strings): added a check to make sure the goal
534 database is not virtual.
535 (ebib-export-string): same.
536 (ebib-prev-entry): modified to use ebib-execute-when.
537 (ebib-next-entry): same.
538 (ebib-add-entry): same.
539 (ebib-close-database): same.
540 (ebib-goto-first-entry): same.
541 (ebib-goto-last-entry): same.
542 (ebib-edit-entry): same.
543 (ebib-edit-keyname): same.
544 (ebib-entry-page-up): same.
545 (ebib-entry-page-down): same.
546 (ebib-save-database): same.
547 (ebib-save-current-database): same.
548 (ebib-delete-entry): same.
549 (ebib-remove-key-from-buffer): same.
550 (ebib-select-entry): same.
552 (ebib-search-next): same.
553 (ebib-edit-strings): same.
554 (ebib-edit-preamble): same.
555 (ebib-next-database): same.
556 (ebib-prev-database): same.
557 (ebib-virtual-db-and): same.
558 (ebib-virtual-db-or): same.
559 (ebib-virtual-db-not): same.
560 (ebib-print-filter): same.
562 2007-02-19 Joost Kremers <joostkremers@yahoo.com>
564 * ebib.el: ebib-1.1.4 released.
566 2007-02-19 Joost Kremers <joostkremers@yahoo.com>
568 * ebib.el (ebib-filter-to-virtual-db): changed the collection to
569 contain strings rather than symbols, because xemacs requires that.
571 2007-02-18 Joost Kremers <joostkremers@yahoo.com>
573 * ebib.el (add-to-listq): new. introduced mainly because xemacs
574 doesn't allow the fourth argument to add-to-list. (actually, i'm
575 not sure if emacs 21.4 supports it...)
577 2007-02-13 Joost Kremers <joostkremers@yahoo.com>
579 * ebib.el (ebib-quit): set ebib-strings-highlight to nil.
581 2007-02-11 Joost Kremers <joostkremers@yahoo.com>
583 * ebib.el (ebib-unique-field-list): new. used for TAB-completion
584 in ebib-filter-to-virtual-db.
585 (ebib-set-entry-types-hash): modified to set
586 ebib-unique-field-list.
587 (ebib-key): modified to keep the cond statement out of the
589 (ebib-create-new-database): modified to take an optional database
590 argument: if supplied, returns a copy of that database.
591 (ebib-index-mode-map): added "&", "|", "~" and "V".
592 (ebib-virtual-db-and): new.
593 (ebib-virtual-db-or): new.
594 (ebib-virtual-db-not): new.
595 (ebib-filter-to-virtual-db): new.
596 (ebib-create-virtual-db): new.
598 (ebib-run-filter): new.
599 (ebib-print-filter): new.
600 (ebib-write-database): modified to handle virtual databases.
601 (ebib-edit-entry): modified to exclude virtual databases.
602 (ebib-edit-keyname): same.
603 (ebib-save-current-database): same.
604 (ebib-save-database): same.
605 (ebib-merge-bibtex-file): same
606 (ebib-add-entry): same.
607 (ebib-delete-entry): same.
608 (ebib-export-entry): same.
609 (ebib-edit-strings): same.
610 (ebib-edit-preamble): same.
611 (ebib-export-preamble): same.
613 (ebib-fill-entry-buffer): modified so that it does not result in
614 an error if the current entry does not exist. This is needed in
615 case the user deletes an entry from a database that has a virtual
616 database that containe that entry.
617 (ebib-format-entry): put (eq key 'timestamp) first in the and
618 clause. no need to check timestamp and ebib-use-timestamp for any
620 (ebib-write-database): modified so that when a virtual database is
621 written to a file, it doesn't attempt to put an entry that is
622 still in a virtual database's keys-list but has been deleted in
623 the source database into the new database. (note: this is still
624 not the proper way to handle this. we need to find a clean way to
625 handle the consequences of an entry being deleted in a source
628 2007-02-10 Joost Kremers <joostkremers@yahoo.com>
630 * ebib.el (when-entries): included a declare indent statement.
631 (with-buffer-writable): same.
632 (edb): added fields `name' and `virtual'.
633 (ebib-fill-index-buffer): modified to use edb-name.
634 (ebib-load-bibtex-file): same.
635 (ebib-write-database): same.
636 (ebib-search-in-entry): added optional field argument.
638 2007-02-04 Joost Kremers <joostkremers@yahoo.com>
640 * ebib.el (ebib-goto-next-set): adapted to make use of
642 (ebib-goto-prev-set): same.
644 (ebib-preload): removed.
645 (ebib-additional-fields): removed.
646 (ebib-insert-entry): modified to insert a timestamp, depending on
647 the argument TIMESTAMP and on the setting of EBIB-USE-TIMESTAMP.
648 (ebib-add-entry): modified: it no longer adds a timestamp
649 itself (as it did after the change two days ago) but just requests
650 ebib-insert-entry to do so.
651 (ebib-read-entry): modified to request insertion of a timestamp.
652 (ebib-edit-keyname): modified so as to explicitly NOT insert a
654 (ebib-export-entry): modified so as to request insertion of a
655 timestamp, both when exporting to another database and to a file.
656 (ebib-find-bibtex-entries): modified: timestamp argument
657 added. This argument is simply passed on to ebib-read-entry.
658 (ebib-load-bibtex-file): modified so that no timestamp is inserted
659 into the entries read from file.
660 (ebib-import): modified to request insertion of a timestamp.
661 (ebib-format-entry): modified to insert a timestamp if required.
662 (ebib-export-entry): fixed a bug that kept ebib-export-filename
664 (ebib-export-preamble): same.
666 2007-02-03 Joost Kremers <joostkremers@yahoo.com>
668 * ebib.el (ebib-format-fields): modified to check if hidden fields
670 (ebib-init): added a line to make timestamp a hidden field.
671 (ebib-hide-hidden-fields): new.
672 (ebib-toggle-hidden): new.
673 (ebib-move-to-field): new.
674 (ebib-find-visible-field): new.
675 (ebib-prev-field): rewritten to make use of ebib-move-to-field.
676 (ebib-next-field): same.
677 (ebib-goto-first-field): same.
678 (ebib-goto-last-field): same.
680 2007-02-02 Joost Kremers <joostkremers@yahoo.com>
682 * ebib.el (ebib-use-timestamp): new.
683 (ebib-add-entry): modified so that it adds a timestamp if
684 ebib-use-timestamp is set.
686 2007-01-23 Joost Kremers <joostkremers@yahoo.com>
688 * ebib.el (ebib-keys-window-size): new.
689 (ebib): modified to use ebib-keys-window-size.
690 (ebib-entry-page-up): same.
691 (ebib-entry-page-down): same.
692 (ebib-customize): new.
693 (ebib-index-mode-map): added "C" key command.
695 2007-01-10 Joost Kremers <joostkremers@yahoo.com>
697 * ebib.el (ebib): added :prefix tag to defgroup.
699 2006-12-17 Joost Kremers <joostkremers@yahoo.com>
701 * ebib.el (ebib-export-preamble): bug (no message being given
702 after exporting the preamble) fixed.
704 2006-12-13 Joost Kremers <joostkremers@yahoo.com>
706 * ebib.el: Ebib 0.28 released.
708 2006-12-12 Joost Kremers <joostkremers@yahoo.com>
710 * ebib.el (ebib-edit-crossref): fixed a bug that caused
711 ebib-set-modified not to be executed.
712 (ebib-set-modified): fixed. save-excursion should not be part of
714 (ebib-quit): ebib-default-type no longer set to nil. (quiting and
715 restarting ebib would leave it set to nil.)
716 (ebib-save-xrefs-first): new.
717 (ebib-compare-xrefs): new.
718 (ebib-format-database): modified to put crossreferencing entries
721 2006-11-13 Joost Kremers <joostkremers@yahoo.com>
723 * ebib.el: Ebib 0.27 released.
725 2006-11-01 Joost Kremers <joostkremers@yahoo.com>
727 * ebib.el (ebib-paste-field-contents): combined two nested if's
730 2006-10-30 Joost Kremers <joostkremers@yahoo.com>
732 * ebib.el (ebib-format-database): added argument db.
733 (ebib-format-strings): added argument db.
734 (ebib-sort-order): new.
736 (ebib-get-sortstring): new.
737 (ebib-insertion-strings): changed to an alist, so that multiple
738 insertion strings can be defined.
739 (ebib-insert-bibtex-key): modified to use the new ebib-insertion-strings.
741 2006-10-24 Joost Kremers <joostkremers@yahoo.com>
743 * ebib.el (ebib-insert-bibtex-key): changed to use a customisable
745 (ebib-insertion-string): new.
747 2006-10-23 Joost Kremers <joostkremers@yahoo.com>
749 * ebib.el: Ebib 0.26 released.
751 2006-10-23 Joost Kremers <joostkremers@yahoo.com>
753 * ebib.el (ebib-set-entry-types-hash): new, to make customising
754 the entry types through the customisation buffer possible.
755 (defentry): modified, so that an entry defined with defentry is
756 also added to the list ebib-entry-types.
757 (ebib-additional-fields): renamed from ebib-ign-fields; modified
758 to check whether a field is already in the list before it is
759 added, so that it is not added twice when Ebib is closed and
760 restarted in the same Emacs session.
761 (ebib-find-bibtex-entries): added modify-syntax-entry, so that
762 users can type (e.g.) "o to create umlaut-o.
763 (ebib-format-database): use mapc on edb-keys-list rather than
764 maphash on edb-database, so that the entries are saved in
765 alphabetical order. (Following a suggestion of Thomas Schmitz.)
767 2006-10-14 Joost Kremers <joostkremers@yahoo.com>
769 * ebib.el: added customisation group ebib.
771 2006-10-01 Joost Kremers <joostkremers@yahoo.com>
773 * ebib.el (ebib-remove-key-from-buffer): added when-entries, to
774 get rid of an error message when the last entry is deleted.
775 (ebib-find-end-of-field): fixed a nasty bug that occurred when
776 reading a .bib-file with an entry in which the last field is raw
777 and is immediately followed by the closing brace. Thanks to Thomas
778 Schmitz for bringing this to my attention.
780 2006-09-14 Joost Kremers <joostkremers@yahoo.com>
782 * ebib.el (ebib-ign-fields): code, uri and location removed.
784 2006-08-29 Joost Kremers <joostkremers@yahoo.com>
786 * ebib.el (ebib-find-bibtex-entries): changed to return a list of
787 the number of entries and number of strings found, and a boolean
788 for whether a preamble was found.
789 (ebib-load-bibtex-file): adapted to accept the new return value of
790 ebib-find-bibtex-entries.
791 (ebib-merge-bibtex-file): same.
792 (ebib-import): added.
794 2006-08-28 Joost Kremers <joostkremers@yahoo.com>
796 * ebib.el (ebib-import): added.
798 2006-08-25 Joost Kremers <joostkremers@yahoo.com>
800 * ebib.el: rearranged some of the variable definitions, so that
801 the entry types can be defined in ebib.el rather than in .ebibrc.
802 (ebib-index-mode-map): put the key definitions back in.
803 (ebib-entry-mode-map): same.
804 (ebib-strings-mode-map): same.
806 2006-08-18 Joost Kremers <joostkremers@yahoo.com>
808 * ebib.el (ebib): renamed the keys buffer to index buffer and the
809 fields buffer to entry buffer.
810 (ebib-key): new. to enable customisation of the command keys
812 (ebib-index-mode-map): moved key definitions to .ebibrc.
813 (ebib-entry-mode-map): same.
814 (ebib-strings-mode-map): same.
816 2006-08-17 Joost Kremers <joostkremers@yahoo.com>
818 * ebib.el (ebib-add-entry): rewrote to use ebib-insert-entry.
820 2006-08-15 Joost Kremers <joostkremers@yahoo.com>
822 * ebib.el (ebib-delete-entry): split into three functions.
823 (ebib-remove-key-from-buffer): split off from ebib-delete-entry.
824 (ebib-remove-entry-from-db): split off from ebib-delete-entry.
825 (ebib-edit-keyname): new. because it partially does the same as
826 ebib-delete-entry, i split up the latter.
828 2006-08-13 Joost Kremers <joostkremers@yahoo.com>
830 * ebib.el (ebib-edit-field): added special clause for the annote
831 field, so that the user is dropped into the multiline edit buffer.
833 2005-11-18 Joost Kremers <joostkremers@yahoo.com>
835 * ebib.el (ebib-read-string): changed so that it does not store
836 the braces or quotes surrounding the string.
837 (ebib-match-quote-forward): added a check to make sure that when a
838 double quote is found at the search limit, this isn't mistakenly
839 taken as the matching quote if it is escaped by a backslash.
841 2005-11-17 Joost Kremers <joostkremers@yahoo.com>
843 * ebib.el (ebib-fields-mode-map): bound C-x k to
844 ebib-quit-fields-buffer.
845 (ebib-strings-mode-map): bound C-x b to ebib-lower, and C-x k to
846 ebib-quit-strings-buffer.
848 2005-11-05 Joost Kremers <joostkremers@yahoo.com>
850 * ebib.el (ebib-load-bibtex-file): use file-readable-p instead of
853 2005-11-04 Joost Kremers <joostkremers@yahoo.com>
855 * ebib.el (ebib-format-fields): new. formats the fields and calls
856 a function to output them.
857 (ebib-fill-fields-buffer): moved the actual formatting and
858 printing code to ebib-format-fields.
859 (ensure-extension): new. make sure a filename has a specific
861 (ebib-load-bibtex-file): changed to use ensure-extension.
862 (remove-from-string): changed to function.
863 (symbol-or-string): same.
864 (ebib-extract-bibfile): new. looks for a \bibliography command in
865 the current buffer and reads its filename.
866 (ebib-get-db-from-filename): new. retrieve a bibtex database based
868 (ebib-get-local-database): new. finds a database to associate with
869 the LaTeX file in the current buffer.
870 (ebib-insert-bibtex-key): removed option to use a prefix
871 argument. instead uses ebib-get-local-database to select a
872 database to get the keys from.
873 (ebib-entry-summary): new. reads the key at point and displays its
874 entry in a *Help* buffer.
876 2005-11-03 Joost Kremers <joostkremers@yahoo.com>
878 * ebib.el (ebib-prefix): changed to function.
881 (ebib-get-obl-fields): same.
882 (ebib-get-opt-fields): same.
884 2005-11-02 Joost Kremers <joostkremers@yahoo.com>
886 * ebib.el (when-entries): new. execute BODY when there is a
887 database open and it contains entries.
888 (ebib-prev-entry): test whether there are entries in the current
890 (ebib-next-entry): same.
891 (ebib-prev-entry): test whether there are entries in the current
893 (ebib-next-entry): same.
894 (ebib-goto-first-entry): same.
895 (ebib-goto-last-entry): same.
896 (ebib-edit-entry): same.
897 (ebib-entry-page-up): same.
898 (ebib-entry-page-down): same.
899 (ebib-delete-entry): same.
900 (ebib-select-entry): same.
901 (ebib-export-entry): same.
902 (ebib-search-next): same.
903 (ebib-edit-strings): test whether a database is open.
904 (ebib-edit-preamble): same.
905 (ebib-search): test whether there are entries in the current
906 database, and ask for search string inside the function, rather
907 than in (interactive).
908 (ebib-export-preamble): test whether a database is open.
909 (ebib-next-database): same.
910 (ebib-prev-database): same.
911 (disabled): new. does nothing except beep. used to disable C-x k
912 and C-x b in the fields and strings buffers.
914 2005-11-02 Steve Youngs <steve@sxemacs.org>
916 * ebib.el (ebib-init): Don't do anything with `ebib-keys-mode-map'
918 (ebib-initial-keys-map): Removed.
919 (ebib-full-keys-map): Removed.
920 (ebib-keys-mode-map): Merge them into here.
921 (ebib-load-bibtex-file): Don't do anything with
922 `ebib-keys-mode-map' here.
923 (ebib-close-database): Ditto.
924 (ebib-fill-keys-buffer): Ditto.
925 (ebib-switch-to-database-nth): Make it compatible with
928 2005-11-02 Joost Kremers <joostkremers@yahoo.com>
930 * ebib.el (ebib-keys-mode): added C-x k and C-x b redefinitions
931 to ebib-initial-keys-map.
932 (ebib-fields-mode): same.
933 (ebib-strings-mode): same.
936 2005-11-02 Steve Youngs <steve@sxemacs.org>
938 * ebib.el (ebib-init): Copy the "initial keys" keymap into
939 `ebib-keys-mode-map'.
940 (ebib-initial-keys-map): Define all the keys inside the variable
941 definition instead of at top level.
942 (ebib-full-keys-map): Ditto. Also make this keymap's parent be
943 `ebib-initial-keys-map' to save on double defining some keys.
944 (ebib-switch-to-database-nth): New. Convenience function for
945 switching between databases.
946 (ebib-fill-keys-buffer): Set the local keymap to `ebib-keys-mode-map'.
947 (ebib-load-bibtex-file): Copy the "full keys" keymap into
948 `ebib-keys-mode-map'.
949 (ebib-close-database): Copy the "initial keys" keymap into
950 `ebib-keys-mode-map' and reset the local map.
951 (ebib-fields-mode-map): Define the keys in the variable definition
952 instead of at top level.
953 (ebib-strings-mode-map): Ditto.
954 (ebib-help-mode-map): Ditto.