aboutsummaryrefslogtreecommitdiff
path: root/ccwl/ui.scm
diff options
context:
space:
mode:
Diffstat (limited to 'ccwl/ui.scm')
-rw-r--r--ccwl/ui.scm15
1 files changed, 12 insertions, 3 deletions
diff --git a/ccwl/ui.scm b/ccwl/ui.scm
index 7f5c76a..3b46a23 100644
--- a/ccwl/ui.scm
+++ b/ccwl/ui.scm
@@ -20,6 +20,7 @@
#:use-module (rnrs io ports)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-28)
+ #:use-module (ice-9 string-fun)
#:use-module (term ansi-color)
#:use-module (ccwl conditions)
#:export (report-formatted-message
@@ -29,9 +30,17 @@
"Report @var{exception}, a @code{&formatted-message} condition to the
user."
(display (apply format
- (formatted-message-format exception)
- (map (cut colorize-string <> 'BOLD 'MAGENTA)
- (formatted-message-arguments exception)))
+ ;; We colorize the format specifiers instead of the
+ ;; arguments because we cannot always be sure that
+ ;; the arguments are strings.
+ (string-replace-substring
+ (string-replace-substring
+ (formatted-message-format exception)
+ "~a"
+ (colorize-string "~a" 'BOLD 'MAGENTA))
+ "~s"
+ (colorize-string "~s" 'BOLD 'MAGENTA))
+ (formatted-message-arguments exception))
(current-error-port))
(newline (current-error-port)))