Hello community, here is the log from the commit of package mc checked in at Thu Jun 8 10:31:32 CEST 2006. -------- --- GNOME/mc/mc.changes 2006-04-18 16:01:18.000000000 +0200 +++ mc/mc.changes 2006-06-07 12:32:44.000000000 +0200 @@ -1,0 +2,5 @@ +Wed Jun 7 12:30:32 CEST 2006 - nadvornik@suse.cz + +- fixes for Slang2 [#177920, #176327] + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mc.spec ++++++ --- /var/tmp/diff_new_pack.PzikbF/_old 2006-06-08 10:30:52.000000000 +0200 +++ /var/tmp/diff_new_pack.PzikbF/_new 2006-06-08 10:30:52.000000000 +0200 @@ -18,7 +18,7 @@ PreReq: permissions Autoreqprov: on Version: 4.6.1 -Release: 31 +Release: 34 Summary: Midnight Commander Source: mc-4.6.1.tar.bz2 Source1: x11_browser @@ -233,6 +233,8 @@ %{_datadir}/mc %changelog -n mc +* Wed Jun 07 2006 - nadvornik@suse.cz +- fixes for Slang2 [#177920, #176327] * Tue Apr 18 2006 - schwab@suse.de - Revert last change, kernel headers have been fixed. * Tue Apr 18 2006 - nadvornik@suse.cz ++++++ mc-CVS-utf8-help.patch ++++++ --- /var/tmp/diff_new_pack.PzikbF/_old 2006-06-08 10:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.PzikbF/_new 2006-06-08 10:30:53.000000000 +0200 @@ -14,7 +14,7 @@ + len = mbrtowc(&wc, p, MB_CUR_MAX, &mbs); + if (len <= 0) len = 1; /* skip broken multibyte chars */ + -+ SLsmg_write_char(wc); ++ SLsmg_write_nwchars(&wc, 1); + p += len - 1; } else +#endif ++++++ mc-CVS-utf8-input.patch ++++++ --- /var/tmp/diff_new_pack.PzikbF/_old 2006-06-08 10:30:54.000000000 +0200 +++ /var/tmp/diff_new_pack.PzikbF/_new 2006-06-08 10:30:54.000000000 +0200 @@ -1850,7 +1850,7 @@ } - +#ifdef UTF8 -+ SLsmg_write_char(textchar); ++ SLsmg_write_nwchars(&textchar, 1); +#else addch (textchar); +#endif @@ -2349,7 +2349,7 @@ +#ifndef UTF8 #define view_add_character(view,c) addch (c) +#else /* UTF8 */ -+#define view_add_character(view,c) SLsmg_write_char(c) ++#define view_add_character(view,c) {wchar_t tmp=c; SLsmg_write_nwchars(&tmp, 1);} +#endif /* UTF8 */ #define view_add_one_vline() one_vline() #define view_add_string(view,s) addstr (s) ++++++ mc-utf8-slang2.patch ++++++ --- /var/tmp/diff_new_pack.PzikbF/_old 2006-06-08 10:30:54.000000000 +0200 +++ /var/tmp/diff_new_pack.PzikbF/_new 2006-06-08 10:30:54.000000000 +0200 @@ -43,15 +43,33 @@ * string such as "linux" or "xterm" S-Lang will go on, but the --- src/util.c +++ src/util.c -@@ -55,6 +55,14 @@ +@@ -55,6 +55,32 @@ static const char app_text [] = "Midnight-Commander"; int easy_patterns = 1; +#if SLANG_VERSION >= 20000 +void SLsmg_write_nwchars(wchar_t *s, size_t n) +{ -+ while(n--) -+ SLsmg_write_char(*s++); ++ if (SLsmg_is_utf8_mode()) { /* slang can handle it directly */ ++ while(n-- && *s) ++ SLsmg_write_char(*s++); ++ } ++ else { /* convert wchars back to 8bit encoding */ ++ mbstate_t mbs; ++ memset (&mbs, 0, sizeof (mbs)); ++ while (n-- && *s) { ++ char buf[MB_LEN_MAX + 1]; /* should use 1 char, but to be sure */ ++ if (*s < 0x80) { ++ SLsmg_write_char(*s++); /* ASCII */ ++ } ++ else { ++ if (wcrtomb(buf, *s++, &mbs) == 1) ++ SLsmg_write_char((wchar_t)(buf[0])); ++ else ++ SLsmg_write_char('?'); /* should not happen */ ++ } ++ } ++ } +} +#endif + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit-help@opensuse.org