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