diff options
author | Ludovic Courtes | 2006-11-25 17:37:51 +0000 |
---|---|---|
committer | Ludovic Courtes | 2006-11-25 17:37:51 +0000 |
commit | a5b8c2cfaf31b5d81a900b1020eb45252d775dd0 (patch) | |
tree | cd0eab640bb27160889f551c1129f0a162adbe26 /src/guile | |
parent | b2aec83973f1b7c2bf9e952ed8e713611cbdc7fb (diff) | |
download | skribilo-a5b8c2cfaf31b5d81a900b1020eb45252d775dd0.tar.gz skribilo-a5b8c2cfaf31b5d81a900b1020eb45252d775dd0.tar.lz skribilo-a5b8c2cfaf31b5d81a900b1020eb45252d775dd0.zip |
lout: bib-ref+: Gracefully handle `unref' objects.
* src/guile/skribilo/engine/lout.scm (bib-ref+)[canonicalize-entry]:
Handle `unref' objects.
[help-proc]: Don't pass `unref' objects to PROC.
git-archimport-id: skribilo@sv.gnu.org--2006/skribilo--devo--1.2--patch-17
Diffstat (limited to 'src/guile')
-rw-r--r-- | src/guile/skribilo/engine/lout.scm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/guile/skribilo/engine/lout.scm b/src/guile/skribilo/engine/lout.scm index db93257..272b131 100644 --- a/src/guile/skribilo/engine/lout.scm +++ b/src/guile/skribilo/engine/lout.scm @@ -2495,6 +2495,7 @@ ((is-markup? x 'bib-entry) x) ((is-markup? x 'bib-ref) (handle-ast (markup-body x))) + ((is-markup? x 'unref) #f) (else (skribe-error 'lout @@ -2502,9 +2503,14 @@ x))))) (help-proc (lambda (proc) (lambda (e1 e2) - (proc (canonicalize-entry e1) - (canonicalize-entry e2))))) + (let ((e1 (canonicalize-entry e1)) + (e2 (canonicalize-entry e2))) + ;; don't pass `unref's to PROC + (if (and e1 e2) + (proc e1 e2) + #f))))) (sort-proc (engine-custom e 'bib-refs-sort-proc))) + (let loop ((rs (if sort-proc (sort entries (help-proc sort-proc)) entries))) |