summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/guile/skribilo/engine/base.scm12
-rw-r--r--src/guile/skribilo/prog.scm10
2 files changed, 17 insertions, 5 deletions
diff --git a/src/guile/skribilo/engine/base.scm b/src/guile/skribilo/engine/base.scm
index 8418e8b..d49b732 100644
--- a/src/guile/skribilo/engine/base.scm
+++ b/src/guile/skribilo/engine/base.scm
@@ -1,6 +1,7 @@
 ;;; base.scm  --  BASE Skribe engine
 ;;;
 ;;; Copyright 2003, 2004  Manuel Serrano
+;;; Copyright 2006  Ludovic Courtès <ludovic.courtes@laas.fr>
 ;;;
 ;;;
 ;;; This program is free software; you can redistribute it and/or modify
@@ -18,7 +19,8 @@
 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 ;;; USA.
 
-(define-skribe-module (skribilo engine base))
+(define-skribe-module (skribilo engine base)
+  :use-module (srfi srfi-13))
 
 ;*---------------------------------------------------------------------*/
 ;*    base-engine ...                                                  */
@@ -457,8 +459,12 @@
 ;*---------------------------------------------------------------------*/
 (markup-writer '&prog-line
    :before (lambda (n e)
-	      (let ((n (markup-ident n)))
-		 (if n (skribe-eval (it (list n) ": ") e))))
+             (let ((num (markup-option n :number)))
+               (if (number? num)
+                   (skribe-eval
+                    (it (string-append (string-pad (number->string num) 3)
+                                       ": "))
+                    e))))
    :after "\n")
 
 ;*---------------------------------------------------------------------*/
diff --git a/src/guile/skribilo/prog.scm b/src/guile/skribilo/prog.scm
index 266d607..2f531cd 100644
--- a/src/guile/skribilo/prog.scm
+++ b/src/guile/skribilo/prog.scm
@@ -24,8 +24,13 @@
   :autoload   (ice-9 receive) (receive)
   :use-module (skribilo lib)  ;; `new'
   :autoload   (skribilo ast) (node? node-body)
+  :use-module (skribilo utils syntax)
+
   :export (make-prog-body resolve-line))
 
+(fluid-set! current-reader %skribilo-module-reader)
+
+
 ;;; ======================================================================
 ;;;
 ;;; COMPATIBILITY
@@ -211,8 +216,9 @@
 		      (extract-mark (car lines) mark regexp)
 		(let* ((line-ident (symbol->string (gensym "&prog-line")))
 		       (n (new markup
-			     (markup '&prog-line)
-			     (ident  line-ident)
+			     (markup  '&prog-line)
+			     (ident   line-ident)
+                             (options `((:number ,lnum)))
 			     (body (if m (make-line-mark m line-ident l) l)))))
  		   (loop (cdr lines)
  			 (+ lnum 1)