I have no idea what Simon thought he was doing casting what was once a
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 31 Dec 2002 22:37:27 +0000 (22:37 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 31 Dec 2002 22:37:27 +0000 (22:37 +0000)
struct sbcs_data * (first element an array of unsigned long) into a
wchar_t *, but I think it's reasonably safe to assume that it was a
mistake.

git-svn-id: svn://svn.tartarus.org/sgt/putty@2399 cda61777-01e9-0310-a592-d414129be87e

charset/sbcs.c

index a71e5d8..c92bdea 100644 (file)
@@ -16,18 +16,18 @@ void read_sbcs(charset_spec const *charset, long int input_chr,
               charset_state *state,
               void (*emit)(void *ctx, long int output), void *emitctx)
 {
-    wchar_t const *table = (wchar_t const *)charset->data;
+    const struct sbcs_data *sd = charset->data;
 
     UNUSEDARG(state);
 
-    emit(emitctx, table[input_chr]);
+    emit(emitctx, sd->sbcs2ucs[input_chr]);
 }
 
 void write_sbcs(charset_spec const *charset, long int input_chr,
                charset_state *state,
                void (*emit)(void *ctx, long int output), void *emitctx)
 {
-    wchar_t const *table = (wchar_t const *)charset->data;
+    const struct sbcs_data *sd = charset->data;
     int i;
 
     UNUSEDARG(state);
@@ -37,7 +37,7 @@ void write_sbcs(charset_spec const *charset, long int input_chr,
      * We should be using the ucs2sbcs table.
      */
     for (i = 0; i < 256; i++)
-       if (table[i] == input_chr) {
+       if (sd->sbcs2ucs[i] == input_chr) {
            emit(emitctx, i);
            return;
        }