aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/biblio.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo/biblio.scm')
-rw-r--r--src/guile/skribilo/biblio.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/guile/skribilo/biblio.scm b/src/guile/skribilo/biblio.scm
index 082fb99..c9c0637 100644
--- a/src/guile/skribilo/biblio.scm
+++ b/src/guile/skribilo/biblio.scm
@@ -33,8 +33,10 @@
:autoload (skribilo reader) (%default-reader)
:autoload (skribilo parameters) (*bib-path*)
:autoload (ice-9 format) (format)
+ :use-module (ice-9 optargs)
+
:export (bib-table? make-bib-table default-bib-table
- bib-add! bib-duplicate
+ bib-add! bib-duplicate bib-for-each
skribe-open-bib-file parse-bib))
(fluid-set! current-reader %skribilo-module-reader)
@@ -66,15 +68,18 @@
(set! *bib-table* (make-bib-table "default-bib-table")))
*bib-table*)
-;;
-;; Utilities
-;;
(define (%bib-error who entry)
(let ((msg "bibliography syntax error on entry"))
(if (%epair? entry)
(skribe-line-error (%epair-file entry) (%epair-line entry) who msg entry)
(skribe-error who msg entry))))
+(define* (bib-for-each proc :optional (table (default-bib-table)))
+ (hash-for-each (lambda (ident entry)
+ (proc entry))
+ table))
+
+
;;; ======================================================================
;;;
;;; BIB-DUPLICATE