summaryrefslogtreecommitdiff
path: root/src/guile/skribilo/biblio.scm
diff options
context:
space:
mode:
authorLudovic Court`es2005-11-29 13:32:30 +0000
committerLudovic Court`es2005-11-29 13:32:30 +0000
commit3918fa2a728f00838ffda94ec6427b133c5abb68 (patch)
tree82dbc19796b8cf3f51486f3e6400967e45468a56 /src/guile/skribilo/biblio.scm
parent4686c3d129e4ebb3edc97e53a20a5f9db682f993 (diff)
downloadskribilo-3918fa2a728f00838ffda94ec6427b133c5abb68.tar.gz
skribilo-3918fa2a728f00838ffda94ec6427b133c5abb68.tar.lz
skribilo-3918fa2a728f00838ffda94ec6427b133c5abb68.zip
Fixed `ref' and bibliography-related things.
* src/guile/skribilo.scm (main): Handle `--warning'. * src/guile/skribilo/biblio.scm: Export `skribe-open-bib-file' and `parse-bib'. (parse-bib): Use `%default-reader'. * src/guile/skribilo/evaluator.scm (%evaluate): Cleaned up. (skribe-eval-port): Likewise. * src/guile/skribilo/module.scm (load-file-with-read): Removed. (load-skribilo-file): Removed. (load-skribilo-modules): Removed. * src/guile/skribilo/package/slide.scm (ref): Temporarily commented out. * src/guile/skribilo/skribe/bib.scm: Use `(skribilo biblio)'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-15
Diffstat (limited to 'src/guile/skribilo/biblio.scm')
-rw-r--r--src/guile/skribilo/biblio.scm41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/guile/skribilo/biblio.scm b/src/guile/skribilo/biblio.scm
index 045e3ae..cbb9202 100644
--- a/src/guile/skribilo/biblio.scm
+++ b/src/guile/skribilo/biblio.scm
@@ -25,10 +25,12 @@
:use-module (skribilo utils syntax) ;; `when', `unless'
:use-module (skribilo module)
:use-module (skribilo skribe bib) ;; `make-bib-entry'
+ :autoload (skribilo reader) (%default-reader)
:autoload (skribilo parameters) (*bib-path*)
:autoload (ice-9 format) (format)
:export (bib-table? make-bib-table default-bib-table
- bib-add!))
+ bib-add! bib-duplicate
+ skribe-open-bib-file parse-bib))
(set-current-reader %skribilo-module-reader)
@@ -92,24 +94,25 @@
;;;
;;; ======================================================================
(define (parse-bib table port)
- (if (not (bib-table? table))
- (skribe-error 'parse-bib "Illegal bibliography table" table)
- (let ((from (port-file-name port)))
- (let Loop ((entry (read port)))
- (unless (eof-object? entry)
- (cond
- ((and (list? entry) (> (length entry) 2))
- (let* ((kind (car entry))
- (key (format #f "~A" (cadr entry)))
- (fields (cddr entry))
- (old (hash-ref table key)))
- (if old
- (bib-duplicate ident from old)
- (hash-set! table key
- (make-bib-entry kind key fields from)))
- (Loop (read port))))
- (else
- (%bib-error 'bib-parse entry))))))))
+ (let ((read %default-reader)) ;; FIXME: We should use a fluid
+ (if (not (bib-table? table))
+ (skribe-error 'parse-bib "Illegal bibliography table" table)
+ (let ((from (port-filename port)))
+ (let Loop ((entry (read port)))
+ (unless (eof-object? entry)
+ (cond
+ ((and (list? entry) (> (length entry) 2))
+ (let* ((kind (car entry))
+ (key (format #f "~A" (cadr entry)))
+ (fields (cddr entry))
+ (old (hash-ref table key)))
+ (if old
+ (bib-duplicate ident from old)
+ (hash-set! table key
+ (make-bib-entry kind key fields from)))
+ (Loop (read port))))
+ (else
+ (%bib-error 'bib-parse entry)))))))))
;;; ======================================================================