aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/lib.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo/lib.scm')
-rw-r--r--src/guile/skribilo/lib.scm22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/guile/skribilo/lib.scm b/src/guile/skribilo/lib.scm
index 96bf483..ab39261 100644
--- a/src/guile/skribilo/lib.scm
+++ b/src/guile/skribilo/lib.scm
@@ -1,6 +1,6 @@
;;; lib.scm -- Utilities. -*- coding: iso-8859-1 -*-
;;;
-;;; Copyright 2005, 2007, 2009, 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright 2005, 2007, 2009, 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright 2003, 2004 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
;;;
;;;
@@ -23,7 +23,9 @@
:use-module (skribilo utils syntax)
:export (skribe-ast-error skribe-error
skribe-type-error
- skribe-warning skribe-warning/ast
+ warning/loc
+ skribe-warning
+ skribe-warning/ast
skribe-message
type-name
@@ -258,13 +260,17 @@
(%skribe-warn level #f #f #f obj)))
-(define (skribe-warning/ast level ast . obj)
+(define (warning/loc level loc . obj)
(if (>= (*warning*) level)
- (let ((l (ast-loc ast)))
- (if (location? l)
- (%skribe-warn level (location-file l) (location-line l)
- (location-column l) obj)
- (%skribe-warn level #f #f #f obj)))))
+ (if (location? loc)
+ (%skribe-warn level (location-file loc) (location-line loc)
+ (location-column loc) obj)
+ (%skribe-warn level #f #f #f obj))))
+
+(define (skribe-warning/ast level ast . obj)
+ (apply warning/loc level
+ (and (ast? ast) (ast-location ast))
+ obj))
;;;
;;; SKRIBE-MESSAGE