about summary refs log tree commit diff
path: root/src/guile/skribilo/package/slide.scm
diff options
context:
space:
mode:
authorLudovic Courtès2012-05-17 23:37:43 +0200
committerLudovic Courtès2012-05-17 23:37:43 +0200
commit1c445dd093cb6a02289f25324039ce1cba358145 (patch)
treee420e91ef8345c6918af7133911a58c9746dcfc8 /src/guile/skribilo/package/slide.scm
parentf59dc186a84504715faf141d1d7bcc9e3ca9d2e7 (diff)
downloadskribilo-1c445dd093cb6a02289f25324039ce1cba358145.tar.gz
skribilo-1c445dd093cb6a02289f25324039ce1cba358145.tar.lz
skribilo-1c445dd093cb6a02289f25324039ce1cba358145.zip
Change `define-markup' to generate a macro, to capture location syntactically.
* src/guile/skribilo/lib.scm (dsssl->guile-formals): New procedure,
  formerly `fix-rest-arg' procedure in `define-markup'.
  (define-markup)[guile-2]: Turn into a macro-generating macro, such
  that markups capture their invocation location syntactically.

* src/guile/skribilo/location.scm (source-properties->location): New
  procedure.
  (invocation-location): Use it.

* src/guile/skribilo/package/base.scm (handle): Move above first use,
  since it's now a macro on Guile 2.0.
* src/guile/skribilo/package/slide.scm (slide-vspace): Likewise.

* src/guile/skribilo/package/eq.scm: Use (skribilo package base) instead
  of autoloading it.

* tests/Makefile.am (TESTS): Add `location.test'.
* tests/location.test: New file.
Diffstat (limited to 'src/guile/skribilo/package/slide.scm')
-rw-r--r--src/guile/skribilo/package/slide.scm22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/guile/skribilo/package/slide.scm b/src/guile/skribilo/package/slide.scm
index 60e11b0..9ba0692 100644
--- a/src/guile/skribilo/package/slide.scm
+++ b/src/guile/skribilo/package/slide.scm
@@ -1,7 +1,7 @@
 ;;; slide.scm  --  Overhead transparencies.
 ;;; -*- coding: iso-8859-1 -*-
 ;;;
-;;; Copyright 2006, 2007, 2008, 2009  Ludovic Courtès <ludo@gnu.org>
+;;; Copyright 2006, 2007, 2008, 2009, 2012  Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright 2003, 2004  Manuel Serrano
 ;;;
 ;;;
@@ -52,6 +52,16 @@
 (define %slide-the-counter 0)
 
 ;*---------------------------------------------------------------------*/
+;*    slide-vspace ...                                                 */
+;*---------------------------------------------------------------------*/
+(define-markup (slide-vspace :rest opt :key (unit 'cm))
+   (new markup
+      (markup 'slide-vspace)
+      (loc &invocation-location)
+      (options `((:unit ,unit) ,@(the-options opt :unit)))
+      (body (the-body opt))))
+
+;*---------------------------------------------------------------------*/
 ;*    slide ...                                                        */
 ;*---------------------------------------------------------------------*/
 (define-markup (slide :rest opt
@@ -152,16 +162,6 @@
       (markup 'slide-pause)))
 
 ;*---------------------------------------------------------------------*/
-;*    slide-vspace ...                                                 */
-;*---------------------------------------------------------------------*/
-(define-markup (slide-vspace :rest opt :key (unit 'cm))
-   (new markup
-      (markup 'slide-vspace)
-      (loc &invocation-location)
-      (options `((:unit ,unit) ,@(the-options opt :unit)))
-      (body (the-body opt))))
-
-;*---------------------------------------------------------------------*/
 ;*    slide-embed ...                                                  */
 ;*---------------------------------------------------------------------*/
 (define-markup (slide-embed :rest opt