diff options
author | Ludovic Courtès | 2008-04-15 20:29:17 +0200 |
---|---|---|
committer | Ludovic Courtès | 2008-04-15 20:29:17 +0200 |
commit | baf2cb533c83f921849c54db3eb371d2bf03a063 (patch) | |
tree | eabe813fc98d272e3632a156ea68e4f6b1037a10 | |
parent | 4d1fc093f311e94f3be9a5fc0155824415cf9384 (diff) | |
download | skribilo-baf2cb533c83f921849c54db3eb371d2bf03a063.tar.gz skribilo-baf2cb533c83f921849c54db3eb371d2bf03a063.tar.lz skribilo-baf2cb533c83f921849c54db3eb371d2bf03a063.zip |
Use SRFI-35 conditions in `(skribilo index)'.
* src/guile/skribilo/index.scm (resolve-the-index)[index-ref]: Raise a
`&message' exception instead of using `skribe-error'.
-rw-r--r-- | src/guile/skribilo/index.scm | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/guile/skribilo/index.scm b/src/guile/skribilo/index.scm index c6ee2d1..b537fb4 100644 --- a/src/guile/skribilo/index.scm +++ b/src/guile/skribilo/index.scm @@ -1,7 +1,7 @@ ;;; index.scm ;;; +;;; Copyright 2005, 2006, 2008 Ludovic Courtès <ludo@gnu.org> ;;; Copyright 2003, 2004 Manuel Serrano -;;; Copyright 2005, 2006 Ludovic Courtès <ludovic.courtes@laas.fr> ;;; ;;; ;;; This program is free software; you can redistribute it and/or modify @@ -24,6 +24,8 @@ :use-syntax (skribilo lib) :use-module (skribilo ast) + :autoload (srfi srfi-34) (raise) + :use-module (srfi srfi-35) :use-module (srfi srfi-39) ;; XXX: The use of `mark' here introduces a cross-dependency between @@ -31,6 +33,8 @@ ;; modules autoloads the other one. :autoload (skribilo package base) (mark) + :autoload (skribilo location) (location?) + :export (index? make-index-table *index-table* default-index resolve-the-index)) @@ -83,7 +87,17 @@ (define (index-ref n) (let ((name (markup-option n 'name))) (if (>= char-offset (string-length name)) - (skribe-error 'the-index "char-offset out of bound" char-offset) + (let ((loc (if (location? loc) + (format #f "~a:~a:~a: " + (location-file loc) + (location-line loc) + (location-column loc)) + "")) + (msg (format + #f (_ "the-index: char-offset `~A' out of bounds~%") + char-offset))) + (raise (condition (&message + (condition-message (string-append loc msg)))))) (string-ref name char-offset)))) ;; sort a bucket of entries (the entries in a bucket share there name) (define (sort-entries-bucket ie) |