diff options
author | Ludovic Courtès <ludo@gnu.org> | 2011-02-02 15:52:56 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2011-02-02 18:06:28 +0100 |
commit | c62da8f891569aa717f4f8557c7e87650ec92fb1 (patch) | |
tree | b176c4ccfc858a9e55915da0131901c3fa3e0907 /libguile/strings.h | |
parent | d6cf96974ea21b2f0deb1908baefb3dd2b704331 (diff) | |
download | guile-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.h | 2 |
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. */ |