summaryrefslogtreecommitdiff
path: root/libguile/strings.h
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2011-02-02 15:52:56 +0100
committerLudovic Courtès <ludo@gnu.org>2011-02-02 18:06:28 +0100
commitc62da8f891569aa717f4f8557c7e87650ec92fb1 (patch)
treeb176c4ccfc858a9e55915da0131901c3fa3e0907 /libguile/strings.h
parentd6cf96974ea21b2f0deb1908baefb3dd2b704331 (diff)
downloadguile-c62da8f891569aa717f4f8557c7e87650ec92fb1.tar.gz
Have `read-char' & co. throw to `decoding-error'.
* libguile/ports.c (scm_read_char): Mention `decoding-error' in the docstring. (get_codepoint): Change to return an error code; add `codepoint' output parameter. Don't raise an error from here. (scm_getc): Raise an error with `scm_decoding_error' if `get_codepoint' returns an error. (scm_peek_char): Likewise. Update docstring. * libguile/strings.c (scm_decoding_error_key): New variable. (scm_decoding_error): New function. (scm_from_stringn): Use `scm_decoding_error' instead of `scm_encoding_error'. * libguile/strings.h (scm_decoding_error): New declaration. * test-suite/tests/ports.test ("string ports")["read-char, wrong encoding, error"]: Change to expect `decoding-error'. Make sure PORT points past the error. ["read-char, wrong encoding, escape"]: Likewise. ["peek-char, wrong encoding, error"]: New test. * test-suite/tests/r6rs-ports.test ("7.2.11 Binary Output")["put-bytevector with wrong-encoding string port"]: Change to expect `decoding-error'. ("8.2.6 Input and output ports")["transcoded-port [error handling mode = raise]"]: Likewise. * test-suite/tests/rdelim.test ("read-line")["decoding error", "decoding error, substitute"]: New tests. * doc/ref/api-io.texi (Reading): Update documentation of `read-char' and `peek-char'. (Line/Delimited): Update documentation of `read-line'.
Diffstat (limited to 'libguile/strings.h')
-rw-r--r--libguile/strings.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/strings.h b/libguile/strings.h
index b9e901b6c..329e6c185 100644
--- a/libguile/strings.h
+++ b/libguile/strings.h
@@ -214,6 +214,8 @@ SCM_INTERNAL void scm_encoding_error (const char *subr, int err,
const char *message,
const char *from, const char *to,
SCM string_or_bv);
+SCM_INTERNAL void scm_decoding_error (const char *subr, int err,
+ const char *message, SCM port);
/* internal utility functions. */