diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
index 9b67e62..d602dfa 100644
--- a/iconvdata/ansi_x3.110.c
+++ b/iconvdata/ansi_x3.110.c
@@ -390,6 +390,7 @@ static const char from_ucs4[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from ANSI_X3.110 to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/armscii-8.c b/iconvdata/armscii-8.c
index 8ad4dc4..845e1e6 100644
--- a/iconvdata/armscii-8.c
+++ b/iconvdata/armscii-8.c
@@ -28,6 +28,7 @@
 #define DEFINE_FINI		1
 #define MIN_NEEDED_FROM		1
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 static const uint16_t map_from_armscii_8[0xfe - 0xa2 + 1] =
diff --git a/iconvdata/big5.c b/iconvdata/big5.c
index 4c8df8e..ee3dede 100644
--- a/iconvdata/big5.c
+++ b/iconvdata/big5.c
@@ -8383,6 +8383,7 @@ static const char from_ucs4_tab15[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from Big5 to UCS4.  */
diff --git a/iconvdata/big5hkscs.c b/iconvdata/big5hkscs.c
index 6084bd8..5dce195 100644
--- a/iconvdata/big5hkscs.c
+++ b/iconvdata/big5hkscs.c
@@ -17738,6 +17738,7 @@ static struct
 #define TO_LOOP			to_big5hkscs
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
index 3106d20..1fab525 100644
--- a/iconvdata/cp1255.c
+++ b/iconvdata/cp1255.c
@@ -30,6 +30,7 @@
 #define TO_LOOP			to_cp1255
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	1
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c
index 6dc13b2..5153eea 100644
--- a/iconvdata/cp1258.c
+++ b/iconvdata/cp1258.c
@@ -31,6 +31,7 @@
 #define TO_LOOP			to_cp1258
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	1
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/cp932.c b/iconvdata/cp932.c
index c467aaa..a358eda 100644
--- a/iconvdata/cp932.c
+++ b/iconvdata/cp932.c
@@ -4534,6 +4534,7 @@ static const char from_ucs4_extra[229][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from CP932 to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/euc-cn.c b/iconvdata/euc-cn.c
index 246ef5d..0d625b4 100644
--- a/iconvdata/euc-cn.c
+++ b/iconvdata/euc-cn.c
@@ -30,6 +30,7 @@
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from EUC-CN to UCS4.  */
diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c
index ff4e46f..a3697f8 100644
--- a/iconvdata/euc-jisx0213.c
+++ b/iconvdata/euc-jisx0213.c
@@ -43,6 +43,7 @@
 #define TO_LOOP			to_euc_jisx0213
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	3
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/euc-jp-ms.c b/iconvdata/euc-jp-ms.c
index 854e301..8aed520 100644
--- a/iconvdata/euc-jp-ms.c
+++ b/iconvdata/euc-jp-ms.c
@@ -4641,6 +4641,7 @@ static const unsigned char from_ucs4_extra[229][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		3
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from EUC-JP-MS to UCS4.  */
diff --git a/iconvdata/euc-jp.c b/iconvdata/euc-jp.c
index a7f2ae3..7689250 100644
--- a/iconvdata/euc-jp.c
+++ b/iconvdata/euc-jp.c
@@ -33,6 +33,7 @@
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		3
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from EUC-JP to UCS4.  */
diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c
index f14d989..3b13c2e 100644
--- a/iconvdata/euc-kr.c
+++ b/iconvdata/euc-kr.c
@@ -66,6 +66,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from EUC-KR to UCS4.  */
diff --git a/iconvdata/euc-tw.c b/iconvdata/euc-tw.c
index 58ad6f1..153e3a0 100644
--- a/iconvdata/euc-tw.c
+++ b/iconvdata/euc-tw.c
@@ -31,6 +31,7 @@
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		4
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from EUC-TW to UCS4.  */
diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c
index 4eaa8b5..f12c451 100644
--- a/iconvdata/gb18030.c
+++ b/iconvdata/gb18030.c
@@ -24107,6 +24107,7 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		4
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from GB18030 to UCS4.  */
diff --git a/iconvdata/gbbig5.c b/iconvdata/gbbig5.c
index 1eb1067..ddaa468 100644
--- a/iconvdata/gbbig5.c
+++ b/iconvdata/gbbig5.c
@@ -4784,6 +4784,7 @@ const char __from_big5_to_gb2312 [13973][2] =
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		1
 #define MAX_NEEDED_TO		2
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from GB2312 to BIG5.  */
diff --git a/iconvdata/gbgbk.c b/iconvdata/gbgbk.c
index 88f9cd9..620c39d 100644
--- a/iconvdata/gbgbk.c
+++ b/iconvdata/gbgbk.c
@@ -32,6 +32,7 @@
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		1
 #define MAX_NEEDED_TO		2
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from GBK to GB2312.  */
diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c
index 05d7eb8..b1a7719 100644
--- a/iconvdata/gbk.c
+++ b/iconvdata/gbk.c
@@ -13130,6 +13130,7 @@ static const char __gbk_from_ucs4_tab12[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from GBK to UCS4.  */
diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
index 9de32c5..0b5484f 100644
--- a/iconvdata/ibm1364.c
+++ b/iconvdata/ibm1364.c
@@ -55,6 +55,7 @@
 #else
 # define MAX_NEEDED_TO	4
 #endif
+#define ONE_DIRECTION	0
 #define PREPARE_LOOP \
   int save_curcs;							      \
   int *curcsp = &data->__statep->__count;
diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
index 1c50f1f..768a444 100644
--- a/iconvdata/ibm930.c
+++ b/iconvdata/ibm930.c
@@ -31,6 +31,7 @@
 #define CHARSET_NAME	"IBM930//"
 #define FROM_LOOP	from_ibm930
 #define TO_LOOP		to_ibm930
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
index cd43619..f5dca59 100644
--- a/iconvdata/ibm932.c
+++ b/iconvdata/ibm932.c
@@ -29,6 +29,7 @@
 #define CHARSET_NAME	"IBM932//"
 #define FROM_LOOP	from_ibm932
 #define TO_LOOP		to_ibm932
+#define ONE_DIRECTION	0
 
 /* Definitions of initialization and destructor function.  */
 #define DEFINE_INIT	1
diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
index 149902b..f46dfb5 100644
--- a/iconvdata/ibm933.c
+++ b/iconvdata/ibm933.c
@@ -31,6 +31,7 @@
 #define CHARSET_NAME	"IBM933//"
 #define FROM_LOOP	from_ibm933
 #define TO_LOOP		to_ibm933
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
index 9a7a862e..a8e4e6c 100644
--- a/iconvdata/ibm935.c
+++ b/iconvdata/ibm935.c
@@ -31,6 +31,7 @@
 #define CHARSET_NAME	"IBM935//"
 #define FROM_LOOP	from_ibm935
 #define TO_LOOP		to_ibm935
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c
index 5a4ab92..239be61 100644
--- a/iconvdata/ibm937.c
+++ b/iconvdata/ibm937.c
@@ -31,6 +31,7 @@
 #define CHARSET_NAME	"IBM937//"
 #define FROM_LOOP	from_ibm937
 #define TO_LOOP		to_ibm937
+#define	ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c
index b507928..5d0db36 100644
--- a/iconvdata/ibm939.c
+++ b/iconvdata/ibm939.c
@@ -31,6 +31,7 @@
 #define CHARSET_NAME	"IBM939//"
 #define FROM_LOOP	from_ibm939
 #define TO_LOOP		to_ibm939
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
index 0ca3327..be0c14f 100644
--- a/iconvdata/ibm943.c
+++ b/iconvdata/ibm943.c
@@ -29,6 +29,7 @@
 #define CHARSET_NAME	"IBM943//"
 #define FROM_LOOP	from_ibm943
 #define TO_LOOP		to_ibm943
+#define ONE_DIRECTION	0
 
 /* Definitions of initialization and destructor function.  */
 #define DEFINE_INIT	1
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index 147f869..e922246 100644
--- a/iconvdata/iso-2022-cn-ext.c
+++ b/iconvdata/iso-2022-cn-ext.c
@@ -47,6 +47,7 @@
 #define CHARSET_NAME		"ISO-2022-CN-EXT//"
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP		from_iso2022cn_ext_loop
 #define TO_LOOP			to_iso2022cn_ext_loop
 #define FROM_LOOP_MIN_NEEDED_FROM	1
diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c
index a282806..5434ef4 100644
--- a/iconvdata/iso-2022-cn.c
+++ b/iconvdata/iso-2022-cn.c
@@ -44,6 +44,7 @@
 #define DEFINE_FINI		1
 #define FROM_LOOP		from_iso2022cn_loop
 #define TO_LOOP			to_iso2022cn_loop
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	4
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c
index b676aa1..4b4ea01 100644
--- a/iconvdata/iso-2022-jp-3.c
+++ b/iconvdata/iso-2022-jp-3.c
@@ -37,6 +37,7 @@
 #define TO_LOOP			to_iso2022jp3_loop
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	4
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index 3428c32..8381c30 100644
--- a/iconvdata/iso-2022-jp.c
+++ b/iconvdata/iso-2022-jp.c
@@ -48,6 +48,7 @@ struct gap
 /* Definitions used in the body of the `gconv' function.  */
 #define FROM_LOOP		from_iso2022jp_loop
 #define TO_LOOP			to_iso2022jp_loop
+#define ONE_DIRECTION			0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	4
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c
index 14080c1..c1babc8 100644
--- a/iconvdata/iso-2022-kr.c
+++ b/iconvdata/iso-2022-kr.c
@@ -42,6 +42,7 @@
 #define MAX_NEEDED_FROM		4
 #define MIN_NEEDED_TO		4
 #define MAX_NEEDED_TO		4
+#define ONE_DIRECTION		0
 #define PREPARE_LOOP \
   int save_set;								      \
   int *setp = &data->__statep->__count;					      \
diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c
index b450fcc..5a0402e 100644
--- a/iconvdata/iso646.c
+++ b/iconvdata/iso646.c
@@ -43,6 +43,8 @@
 #define DEFINE_FINI		0
 #define MIN_NEEDED_FROM		1
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
+
 #define FROM_DIRECTION		(dir == from_iso646)
 #define PREPARE_LOOP \
   enum direction dir = ((struct iso646_data *) step->__data)->dir;	      \
diff --git a/iconvdata/iso8859-1.c b/iconvdata/iso8859-1.c
index 6610cae..a01a1d6 100644
--- a/iconvdata/iso8859-1.c
+++ b/iconvdata/iso8859-1.c
@@ -28,6 +28,7 @@
 #define DEFINE_FINI		1
 #define MIN_NEEDED_FROM		1
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from ISO 8859-1 to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/iso_11548-1.c b/iconvdata/iso_11548-1.c
index 37f55c0..6913827 100644
--- a/iconvdata/iso_11548-1.c
+++ b/iconvdata/iso_11548-1.c
@@ -29,6 +29,7 @@
 #define DEFINE_FINI		1
 #define MIN_NEEDED_FROM		1
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 #define BRAILLE_UCS_BASE	0x2800
 
diff --git a/iconvdata/iso_6937-2.c b/iconvdata/iso_6937-2.c
index 03f0873..8aba77d 100644
--- a/iconvdata/iso_6937-2.c
+++ b/iconvdata/iso_6937-2.c
@@ -380,6 +380,7 @@ static const char from_ucs4[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from ISO 6937-2 to UCS4.  */
diff --git a/iconvdata/iso_6937.c b/iconvdata/iso_6937.c
index 71a829a..f7bbcf0 100644
--- a/iconvdata/iso_6937.c
+++ b/iconvdata/iso_6937.c
@@ -380,6 +380,7 @@ static const char from_ucs4[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from ISO 6937 to UCS4.  */
diff --git a/iconvdata/johab.c b/iconvdata/johab.c
index 07d6b6d..5b5f042 100644
--- a/iconvdata/johab.c
+++ b/iconvdata/johab.c
@@ -150,6 +150,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 
 /* First define the conversion function from JOHAB to UCS4.  */
diff --git a/iconvdata/shift_jisx0213.c b/iconvdata/shift_jisx0213.c
index a6c19ac..26d7eae 100644
--- a/iconvdata/shift_jisx0213.c
+++ b/iconvdata/shift_jisx0213.c
@@ -43,6 +43,7 @@
 #define TO_LOOP			to_shift_jisx0213
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
index b0eacd1..2590b33 100644
--- a/iconvdata/sjis.c
+++ b/iconvdata/sjis.c
@@ -4320,6 +4320,7 @@ static const char from_ucs4_extra[0x100][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from SJIS to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/t.61.c b/iconvdata/t.61.c
index e20ff86..e082b50 100644
--- a/iconvdata/t.61.c
+++ b/iconvdata/t.61.c
@@ -373,6 +373,7 @@ static const char from_ucs4[][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from T.61 to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/tcvn5712-1.c b/iconvdata/tcvn5712-1.c
index 21e1d45..5edc653 100644
--- a/iconvdata/tcvn5712-1.c
+++ b/iconvdata/tcvn5712-1.c
@@ -29,6 +29,7 @@
 #define TO_LOOP			to_tcvn5712_1
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	1
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/tscii.c b/iconvdata/tscii.c
index 8b98a0e..644cb96 100644
--- a/iconvdata/tscii.c
+++ b/iconvdata/tscii.c
@@ -38,6 +38,7 @@
 #define TO_LOOP			to_tscii
 #define DEFINE_INIT		1
 #define DEFINE_FINI		1
+#define ONE_DIRECTION		0
 #define FROM_LOOP_MIN_NEEDED_FROM	1
 #define FROM_LOOP_MAX_NEEDED_FROM	2
 #define FROM_LOOP_MIN_NEEDED_TO		4
diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
index 318c349..629f2d6 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -3044,6 +3044,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
 #define MIN_NEEDED_FROM		1
 #define MAX_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 
 /* First define the conversion function from UHC to UCS4.  */
 #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
diff --git a/iconvdata/unicode.c b/iconvdata/unicode.c
index ed74582..8f9db61 100644
--- a/iconvdata/unicode.c
+++ b/iconvdata/unicode.c
@@ -38,6 +38,7 @@
 #define DEFINE_FINI		0
 #define MIN_NEEDED_FROM		2
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 #define FROM_DIRECTION		(dir == from_unicode)
 #define PREPARE_LOOP \
   enum direction dir = ((struct unicode_data *) step->__data)->dir;	      \
diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c
index 48edfa3..31c2d6e 100644
--- a/iconvdata/utf-16.c
+++ b/iconvdata/utf-16.c
@@ -39,6 +39,7 @@
 #define MIN_NEEDED_FROM		2
 #define MAX_NEEDED_FROM		4
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 #define FROM_DIRECTION		(dir == from_utf16)
 #define PREPARE_LOOP \
   enum direction dir = ((struct utf16_data *) step->__data)->dir;	      \
diff --git a/iconvdata/utf-32.c b/iconvdata/utf-32.c
index 7705d47..e3e4243 100644
--- a/iconvdata/utf-32.c
+++ b/iconvdata/utf-32.c
@@ -37,6 +37,7 @@
 #define DEFINE_FINI		0
 #define MIN_NEEDED_FROM		4
 #define MIN_NEEDED_TO		4
+#define ONE_DIRECTION		0
 #define FROM_DIRECTION		(dir == from_utf32)
 #define PREPARE_LOOP \
   enum direction dir = ((struct utf32_data *) step->__data)->dir;	      \
diff --git a/iconvdata/utf-7.c b/iconvdata/utf-7.c
index 99c255e..637d85c 100644
--- a/iconvdata/utf-7.c
+++ b/iconvdata/utf-7.c
@@ -120,6 +120,7 @@ base64 (unsigned int i)
 #define MAX_NEEDED_FROM		6
 #define MIN_NEEDED_TO		4
 #define MAX_NEEDED_TO		4
+#define ONE_DIRECTION		0
 #define PREPARE_LOOP \
   mbstate_t saved_state;						      \
   mbstate_t *statep = data->__statep;
