From c601368c81dc3ea407d218ea6133b48ea8a3b278 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 26 Oct 2004 19:39:42 +0000 Subject: [PATCH] Couple of fiddly fixes in libcharset. git-svn-id: svn://svn.tartarus.org/sgt/charset@4701 cda61777-01e9-0310-a592-d414129be87e --- iso2022s.c | 2 +- sbcs.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/iso2022s.c b/iso2022s.c index 0599534..53b5d44 100644 --- a/iso2022s.c +++ b/iso2022s.c @@ -679,7 +679,7 @@ static int ctext_from_ucs(long int ucs, int *subcharset, unsigned long *bytes) } } #define SEQ(str,cont,cs) \ - {str,~(63<<(6*((cont&~RO)))),(cs)<<(6*((cont&~RO))),(cont),(cs)} + {str,~(63<<(6*(((cont)&~RO)))),(cs)<<(6*(((cont)&~RO))),(cont),(cs)} /* * Compound text defines restrictions on which container can take * which character sets. Things labelled `left half of' can only go diff --git a/sbcs.c b/sbcs.c index ab7b997..e8be5a8 100644 --- a/sbcs.c +++ b/sbcs.c @@ -56,11 +56,17 @@ int write_sbcs(charset_spec const *charset, long int input_chr, void (*emit)(void *ctx, long int output), void *emitctx) { const struct sbcs_data *sd = charset->data; + long int ret; UNUSEDARG(state); if (input_chr == -1) return TRUE; /* stateless; no cleanup required */ - emit(emitctx, sbcs_from_unicode(sd, input_chr)); + ret = sbcs_from_unicode(sd, input_chr); + if (ret == ERROR) + return FALSE; + + emit(emitctx, ret); + return TRUE; } -- 2.11.0