diff options
author | Ludovic Court`es | 2006-05-09 15:30:39 +0000 |
---|---|---|
committer | Ludovic Court`es | 2006-05-09 15:30:39 +0000 |
commit | fadc45ade3cdec5c63deb199fdc5b3269d48b272 (patch) | |
tree | c0792be7d774752277a7a8c5c0ebe1bed6c8465c /src/guile/skribilo/ast.scm | |
parent | fc1393afb3a78e25eaeb5dc1380bfcde320c6937 (diff) | |
download | skribilo-fadc45ade3cdec5c63deb199fdc5b3269d48b272.tar.gz skribilo-fadc45ade3cdec5c63deb199fdc5b3269d48b272.tar.lz skribilo-fadc45ade3cdec5c63deb199fdc5b3269d48b272.zip |
Added `markup-option-set!'.
* src/guile/skribilo/ast.scm (markup-option-set!): New.
* src/guile/skribilo/engine/lout.scm (markup-option-set!): Removed.
(lout-start-large-scale-structure): Don't invoke `markup-option-set!'
on markups that are not a large-scale structure.
git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-80
Diffstat (limited to 'src/guile/skribilo/ast.scm')
-rw-r--r-- | src/guile/skribilo/ast.scm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/guile/skribilo/ast.scm b/src/guile/skribilo/ast.scm index 3968b18..f335dbd 100644 --- a/src/guile/skribilo/ast.scm +++ b/src/guile/skribilo/ast.scm @@ -22,6 +22,7 @@ (define-module (skribilo ast) :use-module (oop goops) :autoload (skribilo location) (location?) + :autoload (skribilo lib) (skribe-type-error skribe-error) :use-module (skribilo utils syntax) :export (<ast> ast? ast-loc ast-loc-set! ast-parent ast->string ast->file-location @@ -36,7 +37,8 @@ <markup> markup? bind-markup! markup-options is-markup? markup-markup markup-body markup-ident markup-class find-markups - markup-option markup-option-add! markup-output + markup-option markup-option-set! + markup-option-add! markup-output markup-parent markup-document markup-chapter <container> container? container-options @@ -222,6 +224,14 @@ (cadr c))) (skribe-type-error 'markup-option "Illegal markup: " m "markup"))) +(define (markup-option-set! m opt val) + (if (markup? m) + (let ((c (assq opt (slot-ref m 'options)))) + (if (and (pair? c) (pair? (cdr c))) + (set-cdr! c (list val)) + (skribe-error 'markup-option-set! "unknown option: " + m))) + (skribe-type-error 'markup-option-set! "Illegal markup: " m "markup"))) (define (markup-option-add! m opt val) (if (markup? m) |