50 lines
1.1 KiB
Diff
50 lines
1.1 KiB
Diff
--- mc-4.6.1-pre2b/src/help.c
|
|
+++ mc-4.6.1-pre2b/src/help.c
|
|
@@ -447,8 +447,22 @@
|
|
#else
|
|
SLsmg_draw_object (h->y + line + 2, h->x + col + 2, c);
|
|
#endif
|
|
+ } else {
|
|
+#ifdef UTF8
|
|
+ if (SLsmg_Is_Unicode) {
|
|
+ int len;
|
|
+ mbstate_t mbs;
|
|
+ wchar_t wc;
|
|
+ memset (&mbs, 0, sizeof (mbs));
|
|
+ len = mbrtowc(&wc, p, MB_CUR_MAX, &mbs);
|
|
+ if (len <= 0) len = 1; /* skip broken multibyte chars */
|
|
+
|
|
+ SLsmg_write_nwchars(&wc, 1);
|
|
+ p += len - 1;
|
|
} else
|
|
+#endif
|
|
addch (c);
|
|
+ }
|
|
col++;
|
|
break;
|
|
}
|
|
@@ -771,6 +785,12 @@
|
|
message (1, MSG_ERROR, _(" Cannot open file %s \n %s "), filename ? filename : hlpfile,
|
|
unix_error_string (errno));
|
|
}
|
|
+ else
|
|
+ {
|
|
+ char *conv = utf8_to_local(data);
|
|
+ g_free(data);
|
|
+ data = conv;
|
|
+ }
|
|
|
|
if (!filename)
|
|
g_free (hlpfile);
|
|
--- mc-4.6.1-pre2b/src/util.h
|
|
+++ mc-4.6.1-pre2b/src/util.h
|
|
@@ -97,6 +97,8 @@
|
|
int mbstrlen (const char *);
|
|
wchar_t *mbstr_to_wchar (const char *);
|
|
char *wchar_to_mbstr (const wchar_t *);
|
|
+char *utf8_to_local(char *str);
|
|
+
|
|
|
|
#define MAX_I18NTIMELENGTH 14
|
|
#define MIN_I18NTIMELENGTH 10
|