summaryrefslogtreecommitdiff
path: root/iconvdata/iso-2022-jp.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-05-16 22:24:20 +0000
committerUlrich Drepper <drepper@redhat.com>1998-05-16 22:24:20 +0000
commit922903d21761d33f07630ab6de2b34fb738c3fda (patch)
treeeffacd37ad63cf706d88ac09cca679b2dd6766f2 /iconvdata/iso-2022-jp.c
parent66175fa825828d3a012c34777fd9e7916b7aa10b (diff)
Update.
* posix/Makefile (tests): Add runptests. (distribute): Add PTESTS, PTESTS2C.sed, and ptestcases.h. (before-compile): Add ptestcases.h. (ptestscases.h): Add rule to generate from PTESTS. * posix/runptests.c: New file. * posix/PTESTS: New file. * posix/PTESTS2C.sed: New file. 1998-05-15 Ulrich Drepper <drepper@cygnus.com>
Diffstat (limited to 'iconvdata/iso-2022-jp.c')
-rw-r--r--iconvdata/iso-2022-jp.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index 900c733552..387298803f 100644
--- a/iconvdata/iso-2022-jp.c
+++ b/iconvdata/iso-2022-jp.c
@@ -55,10 +55,8 @@ struct gap
enum direction dir = ((struct iso2022jp_data *) step->data)->dir; \
enum variant var = ((struct iso2022jp_data *) step->data)->var; \
int save_set; \
- int set = data->statep->count;
-#define END_LOOP \
- data->statep->count = set;
-#define EXTRA_LOOP_ARGS , var, set
+ int *setp = &data->statep->count;
+#define EXTRA_LOOP_ARGS , var, setp
/* Direction of the transformation. */
@@ -177,14 +175,14 @@ gconv_end (struct gconv_step *data)
the output state to the initial state. This has to be done during the
flushing. */
#define EMIT_SHIFT_TO_INIT \
- if (data->statep->count != 0) \
+ if (data->statep->count != ASCII_set) \
{ \
enum direction dir = ((struct iso2022jp_data *) step->data)->dir; \
\
if (dir == from_iso2022jp) \
/* It's easy, we don't have to emit anything, we just reset the \
state for the input. */ \
- data->statep->count = 0; \
+ data->statep->count = ASCII_set; \
else \
{ \
char *outbuf = data->outbuf; \
@@ -201,7 +199,7 @@ gconv_end (struct gconv_step *data)
*outbuf++ = '('; \
*outbuf++ = 'B'; \
data->outbuf = outbuf; \
- data->statep->count = 0; \
+ data->statep->count = ASCII_set; \
} \
} \
}
@@ -211,9 +209,9 @@ gconv_end (struct gconv_step *data)
and retore the state. */
#define SAVE_RESET_STATE(Save) \
if (Save) \
- save_set = set; \
+ save_set = *setp; \
else \
- set = save_set
+ *setp = save_set
/* First define the conversion function from ISO-2022-JP to UCS4. */
@@ -403,7 +401,9 @@ gconv_end (struct gconv_step *data)
\
*((uint32_t *) outptr)++ = ch; \
}
-#define EXTRA_LOOP_DECLS , enum variant var, int set
+#define EXTRA_LOOP_DECLS , enum variant var, int *setp
+#define INIT_PARAMS int set = *setp
+#define UPDATE_PARAMS *setp = set
#include <iconv/loop.c>
@@ -691,7 +691,9 @@ gconv_end (struct gconv_step *data)
/* Now that we wrote the output increment the input pointer. */ \
inptr += 4; \
}
-#define EXTRA_LOOP_DECLS , enum variant var, int set
+#define EXTRA_LOOP_DECLS , enum variant var, int *setp
+#define INIT_PARAMS int set = *setp
+#define UPDATE_PARAMS *setp = set
#include <iconv/loop.c>