summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--doc/modules/skribilo/documentation/api.scm14
-rw-r--r--src/guile/skribilo/package/base.scm4
3 files changed, 38 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index af87905..26ed052 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,29 @@
 # arch-tag: automatic-ChangeLog--skribilo@sv.gnu.org--2006/skribilo--devo--1.2
 #
 
+2007-06-11 15:57:17 GMT	Ludovic Court`es <ludovic.courtes@laas.fr>	patch-110
+
+    Summary:
+      Added a `:&location' argument to `table'.
+    Revision:
+      skribilo--devo--1.2--patch-110
+
+    * doc/modules/skribilo/documentation/api.scm (%undocumented-options):
+      New.
+      (doc-check-arguments): Use it to allow `:&location' to not be
+      documented.
+    
+    * src/guile/skribilo/package/base.scm (table): Added a `&location'
+      argument.
+
+    modified files:
+     ChangeLog doc/modules/skribilo/documentation/api.scm
+     src/guile/skribilo/package/base.scm
+
+    new patches:
+     lcourtes@laas.fr--2006-libre/skribilo--devo--1.2--patch-69
+
+
 2007-06-08 15:08:50 GMT	Ludovic Court`es <ludovic.courtes@laas.fr>	patch-109
 
     Summary:
diff --git a/doc/modules/skribilo/documentation/api.scm b/doc/modules/skribilo/documentation/api.scm
index 84108c9..052b5fa 100644
--- a/doc/modules/skribilo/documentation/api.scm
+++ b/doc/modules/skribilo/documentation/api.scm
@@ -269,12 +269,24 @@
 ;*---------------------------------------------------------------------*/
 ;*    doc-check-arguments ...                                          */
 ;*---------------------------------------------------------------------*/
+(define %undocumented-options
+  ;; Special markup options that don't need to be documented.
+  (list (symbol->keyword '&location)
+        (string->symbol ":&location")
+        '&location))
+
 (define (doc-check-arguments id args dargs)
    (if (not args)
        (skribe-error 'doc-check-arguments id args))
    (if (not dargs)
        (skribe-error 'doc-check-arguments id dargs))
-   (let* ((s1 (map (lambda (x) (if (pair? x) (car x) x)) args))
+   (let* ((s1 (reverse! (fold (lambda (x res)
+                                (let ((x (if (pair? x) (car x) x)))
+                                  (if (memq x %undocumented-options)
+                                      res
+                                      (cons x res))))
+                              '()
+                              args)))
 	  (s2 (map (lambda (x)
 		      (let ((i (car x)))
 			 (if (keyword? i)
diff --git a/src/guile/skribilo/package/base.scm b/src/guile/skribilo/package/base.scm
index a32f3f4..29eb2df 100644
--- a/src/guile/skribilo/package/base.scm
+++ b/src/guile/skribilo/package/base.scm
@@ -693,7 +693,7 @@
 (define-markup (table :rest
 		      opts
 		      :key
-		      (ident #f) (class #f)
+		      (ident #f) (class #f) (&location #f)
 		      (border #f) (width #f)
 		      (frame 'none) (rules 'none)
 		      (cellstyle 'collapse) (cellpadding #f) (cellspacing #f))
@@ -734,7 +734,7 @@
 	     (markup 'table)
 	     (ident (or ident (symbol->string (gensym "table"))))
 	     (class class)
-             (loc   &invocation-location)
+             (loc   (or &location &invocation-location))
 	     (required-options '(:width :frame :rules))
 	     (options `((:frame ,frame)
 			(:rules ,rules)