--- mc/src/widget.c.orig 2002-12-26 02:15:48 +0300 +++ mc/src/widget.c 2003-02-18 12:16:05 +0300 @@ -1505,7 +1506,7 @@ /* Inserts text in input line */ void -stuff (WInput *in, const char *text, int insert_extra_space) +stuff (WInput *in, const unsigned char *text, int insert_extra_space) { input_disable_update (in); while (*text) --- mc/src/widget.h.orig 2002-11-13 05:27:01 +0300 +++ mc/src/widget.h 2003-02-18 12:14:34 +0300 @@ -153,7 +153,7 @@ void update_input (WInput *in, int clear_first); void new_input (WInput *in); int push_history (WInput *in, const char *text); -void stuff (WInput *in, const char *text, int insert_extra_space); +void stuff (WInput *in, const unsigned char *text, int insert_extra_space); void input_disable_update (WInput *in); void input_set_prompt (WInput *in, int field_len, const char *prompt); void input_enable_update (WInput *in); --- mc/src/command.c.orig 2002-11-14 10:25:19 +0300 +++ mc/src/command.c 2003-02-18 12:15:42 +0300 @@ -279,7 +279,7 @@ char *quoted_text; quoted_text = name_quote (text, 1); - stuff (in, quoted_text, insert_extra_space); + stuff (in, (unsigned char *)quoted_text, insert_extra_space); g_free (quoted_text); } --- mc/edit/editkeys.c.orig 2002-12-26 01:53:07 +0300 +++ mc/edit/editkeys.c 2003-02-18 12:43:41 +0300 @@ -29,6 +29,12 @@ #include "src/charsets.h" /* convert_from_input_c() */ #include "src/selcodepage.h" /* do_select_codepage() */ +#ifdef HAVE_CHARSET +#define full_eight_bits (1) +#else +extern int full_eight_bits; +#endif + /* * Ordinary translations. Note that the keys listed first take priority * when the key is assigned to more than one command. @@ -281,7 +287,7 @@ if (x_key < 256) { int c = convert_from_input_c (x_key); - if (is_printable (c)) { + if ((full_eight_bits && ((c > 31 && c <= 127) || c >= 160)) || c > 31) { char_for_insertion = c; goto fin; }