summaryrefslogtreecommitdiffstats
path: root/stream.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-10-09 22:06:39 -0700
committerKaz Kylheku <kaz@kylheku.com>2011-10-09 22:06:39 -0700
commitb9a153ac4e4690112877e4817b840ebdc7427c5a (patch)
tree59410247bec7842e4c7e180b98f80764f40fa5d5 /stream.c
parent889501071aeae561b026fc298e0442d2ef4e433f (diff)
downloadtxr-b9a153ac4e4690112877e4817b840ebdc7427c5a.tar.gz
txr-b9a153ac4e4690112877e4817b840ebdc7427c5a.tar.bz2
txr-b9a153ac4e4690112877e4817b840ebdc7427c5a.zip
Following up to previous commit's TODO.
* filter.c (struct filter_par): wchar_t becomes wchli_t. * lib.h (wchli_t): New type: an incomplete structure type, so that a pointer to this type is incompatible with anything else. (wli): Macro produces const wchli_t * pointer instead of const wchar_t *. (auto_str, static_str): Accept a const wchli_t * instead of const wchar_t *, making it impossible to misuse these functions by passing in a literal. * stream.c (string_out_put_char): These type changes showed this hack to have a bug. Confronted with the need to cast from const wchar_t * to const wchli_t *, it's obvious that the conversion has to be done properly with the + 1 in the one platform case, but not the other. * txr.c (version): Type changed to const wchli_t. * txr.h (version): Declaration updated.
Diffstat (limited to 'stream.c')
-rw-r--r--stream.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/stream.c b/stream.c
index f15e7b2a..84d417a7 100644
--- a/stream.c
+++ b/stream.c
@@ -420,12 +420,13 @@ static val string_out_put_char(val stream, val ch)
mini[0] = 0;
mini[1] = c_chr(ch);
mini[2] = 0;
+ return string_out_put_string(stream, auto_str((const wchli_t *) (mini + 1)));
#else
wchar_t mini[2];
mini[0] = c_chr(ch);
mini[1] = 0;
+ return string_out_put_string(stream, auto_str((const wchli_t *) mini));
#endif
- return string_out_put_string(stream, auto_str(mini));
}
static struct strm_ops string_out_ops = {