about summary refs log tree commit diff
path: root/src/guile/skribilo/engine
diff options
context:
space:
mode:
authorLudovic Court`es2006-11-24 10:48:04 +0000
committerLudovic Court`es2006-11-24 10:48:04 +0000
commit25deac661d70aa848fb2134dc769cc9ff55c5173 (patch)
tree4719f45d90ddf001ef4c761813b5d4465883e636 /src/guile/skribilo/engine
parentc3242a5179081b651ab56701a717f9589532464c (diff)
downloadskribilo-25deac661d70aa848fb2134dc769cc9ff55c5173.tar.gz
skribilo-25deac661d70aa848fb2134dc769cc9ff55c5173.tar.lz
skribilo-25deac661d70aa848fb2134dc769cc9ff55c5173.zip
Introduced `markup-number-string'.
* src/guile/skribilo/ast.scm: Use `(ice-9 optargs)'.
  (markup-number-string): New (stolen from the Lout engine).

* src/guile/skribilo/engine/lout.scm: Use it.
  (lout-structure-number-string): Redefined in terms of
  `markup-number-string'.

git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-76
Diffstat (limited to 'src/guile/skribilo/engine')
-rw-r--r--src/guile/skribilo/engine/lout.scm22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/guile/skribilo/engine/lout.scm b/src/guile/skribilo/engine/lout.scm
index 272b131..6106f35 100644
--- a/src/guile/skribilo/engine/lout.scm
+++ b/src/guile/skribilo/engine/lout.scm
@@ -502,7 +502,7 @@
     (if num
 	(begin
 	  (if (is-markup? node 'chapter) (display "@B { "))
-	  (printf "~a. |2s " (lout-structure-number-string node))
+	  (printf "~a. |2s " (markup-number-string node))
 	  (output title engine)
 	  (if (is-markup? node 'chapter) (display " }")))
 	(if (is-markup? node 'chapter)
@@ -525,7 +525,7 @@
 (define (lout-pdf-bookmark-title node engine)
   ;; Default implementation of the `pdf-bookmark-title-proc' custom that
   ;; returns a title (a string) for the PDF bookmark of `node'.
-  (let ((number (lout-structure-number-string node)))
+  (let ((number (markup-number-string node)))
     (string-append  (if (string=? number "") "" (string-append number ". "))
 		    (ast->string (markup-option node :title)))))
 
@@ -1321,17 +1321,11 @@
 		     doc-type)))))
 
 (define-public (lout-structure-number-string markup)
-  ;; Return a structure number string such as "1.2".
-  ;; FIXME: External code has started to rely on this.  This should be
-  ;;        generalized and moved elsewhere.
-  (let loop ((struct markup))
-    (if (document? struct)
-	""
-	(let ((parent-num (loop (ast-parent struct)))
-	      (num (markup-option struct :number)))
-	  (string-append parent-num
-			 (if (string=? "" parent-num) "" ".")
-			 (if (number? num) (number->string num) ""))))))
+  ;; FIXME: External code has started to rely on this before this was moved
+  ;; to the `ast' module as `markup-number-string'.  Thus, we'll have to keep it
+  ;; here for some time.
+  (markup-number-string markup "."))
+
 
 ;*---------------------------------------------------------------------*/
 ;*    lout-block-before ...                                            */
@@ -1360,7 +1354,7 @@
 
 	   (if (number? number)
 	       (printf "  @BypassNumber { ~a }\n"
-		       (lout-structure-number-string n))
+		       (markup-number-string n))
 	       (if (not number)
 		   ;; this trick hides the section number
 		   (printf "  @BypassNumber { } # unnumbered\n")))