summaryrefslogtreecommitdiff
path: root/win32/gui
diff options
context:
space:
mode:
Diffstat (limited to 'win32/gui')
-rw-r--r--win32/gui/WndMain.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c
index 3cbc88d5..c48f34ce 100644
--- a/win32/gui/WndMain.c
+++ b/win32/gui/WndMain.c
@@ -843,14 +843,21 @@ void UpdateMcdItems(int mcd, int idc) {
void McdListGetDispInfo(int mcd, int idc, LPNMHDR pnmh) {
LV_DISPINFO *lpdi = (LV_DISPINFO *)pnmh;
McdBlock *Info;
+ char buf[256], buftitle[256];
- Info = &Blocks[mcd-1][lpdi->item.iItem];
+ Info = &Blocks[mcd - 1][lpdi->item.iItem];
switch (lpdi->item.iSubItem) {
case 0:
switch (Info->Flags & 0xF) {
case 1:
- lpdi->item.pszText = Info->Title;
+ if (MultiByteToWideChar(932, 0, (LPCSTR)Info->sTitle, -1, (LPWSTR)buf, sizeof(buf)) == 0) {
+ lpdi->item.pszText = Info->Title;
+ } else if (WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)buf, -1, (LPSTR)buftitle, sizeof(buftitle), NULL, NULL) == 0) {
+ lpdi->item.pszText = Info->Title;
+ } else {
+ lpdi->item.pszText = buftitle;
+ }
break;
case 2:
lpdi->item.pszText = _("mid link block");