aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/ast.scm
diff options
context:
space:
mode:
authorLudovic Court`es2006-05-09 15:30:39 +0000
committerLudovic Court`es2006-05-09 15:30:39 +0000
commitfadc45ade3cdec5c63deb199fdc5b3269d48b272 (patch)
treec0792be7d774752277a7a8c5c0ebe1bed6c8465c /src/guile/skribilo/ast.scm
parentfc1393afb3a78e25eaeb5dc1380bfcde320c6937 (diff)
downloadskribilo-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.scm12
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)