about summary refs log tree commit diff
path: root/src/guile/skribilo/package/base.scm
diff options
context:
space:
mode:
authorLudovic Court`es2007-08-20 16:29:46 +0000
committerLudovic Court`es2007-08-20 16:29:46 +0000
commit78b603a076be86ffeb1861fc16bf355fa3c4562f (patch)
tree1aeb42cbcc3885b53a1fd89aa24b42bdfb2f7411 /src/guile/skribilo/package/base.scm
parent655e83cceddc28f7a1b25106e9cafae005530ca5 (diff)
parentea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac (diff)
downloadskribilo-78b603a076be86ffeb1861fc16bf355fa3c4562f.tar.gz
skribilo-78b603a076be86ffeb1861fc16bf355fa3c4562f.tar.lz
skribilo-78b603a076be86ffeb1861fc16bf355fa3c4562f.zip
Fixed `find-up'.
* src/guile/skribilo/ast.scm (find-up): Don't cons OBJ when it doesn't
  match PRED.

git-archimport-id: skribilo@sv.gnu.org--2006/skribilo--devo--1.2--patch-145
Diffstat (limited to 'src/guile/skribilo/package/base.scm')
-rw-r--r--src/guile/skribilo/package/base.scm33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/guile/skribilo/package/base.scm b/src/guile/skribilo/package/base.scm
index 872c1e2..9616080 100644
--- a/src/guile/skribilo/package/base.scm
+++ b/src/guile/skribilo/package/base.scm
@@ -174,6 +174,22 @@
 		   (skribe-error 'toc "Illegal argument" body)))))))
 
 ;*---------------------------------------------------------------------*/
+;*    section-number ...                                               */
+;*---------------------------------------------------------------------*/
+(define (section-number number markup)
+  (cond ((not number)
+         ;; number-less
+         #f)
+        ((or (string? number) (list? number) (ast? number))
+         ;; user-specified number
+         number)
+        (else
+         ;; automatic numbering
+         (new unresolved
+              (proc (lambda (n e env)
+                      (resolve-counter n env markup number)))))))
+
+;*---------------------------------------------------------------------*/
 ;*    chapter ... ...                                                  */
 ;*    -------------------------------------------------------------    */
 ;*    doc:                                                             */
@@ -193,13 +209,7 @@
       (loc   &invocation-location)
       (required-options '(:title :file :toc :number))
       (options `((:toc ,toc)
-		 (:number ,(and number
-				(new unresolved
-				   (proc (lambda (n e env)
-					    (resolve-counter n
-							     env
-							     'chapter
-							     number))))))
+		 (:number ,(section-number number 'chapter))
 		 ,@(the-options opts :ident :class)))
       (body (the-body opts))
       (env (list (list 'section-counter 0) (list 'section-env '())
@@ -207,15 +217,6 @@
                  (list 'equation-counter 0) (list 'equation-env '())))))
 
 ;*---------------------------------------------------------------------*/
-;*    section-number ...                                               */
-;*---------------------------------------------------------------------*/
-(define (section-number number markup)
-   (and number
-	(new unresolved
-	   (proc (lambda (n e env)
-		    (resolve-counter n env markup number))))))
-
-;*---------------------------------------------------------------------*/
 ;*    section ...                                                      */
 ;*    -------------------------------------------------------------    */
 ;*    doc:                                                             */