From 27a34865830adff82f8ef8bf76975480504275d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sun, 1 Mar 2020 23:12:43 +0100 Subject: Made escaped non-escapable characters non-fatal in parser. --- module/vcomponent/parse.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'module') diff --git a/module/vcomponent/parse.scm b/module/vcomponent/parse.scm index 821e2d92..1a643fa3 100644 --- a/module/vcomponent/parse.scm +++ b/module/vcomponent/parse.scm @@ -91,6 +91,19 @@ (let ((component (make-vcomponent)) (ctx (make-parse-ctx (port-filename port))) (strbuf (make-strbuf))) + (define (warning fmt . args) + (display + (format #f + "== PARSE WARNING == +filename = ~a +row ~a column ~a ctx = ~a +~a ; ~a = ... : ... +~?~%~%" + (get-filename ctx) + (get-row ctx) (get-col ctx) (get-ctx ctx) + (get-line-key ctx) (get-param-key ctx) + fmt args)) ) + (with-throw-handler #t (lambda () (while #t @@ -206,7 +219,7 @@ [(#\n #\N) (strbuf-append! strbuf (char->integer #\newline))] [(#\; #\, #\\) => (lambda (c) (strbuf-append! strbuf (char->integer c)))] - [else => (lambda (c) (throw 'escape-error "Non-escapable character" c))]) + [else => (lambda (c) (warning "Non-escapable character: ~a" c))]) (increment-column! ctx)] ;; Delimiter between param key and param value -- cgit v1.2.3