Index: CtrlUtil.cpp =================================================================== RCS file: /home/CVSROOT/upp/uppsrc/CtrlLib/CtrlUtil.cpp,v retrieving revision 1.1.1.1 diff -b -u -r1.1.1.1 CtrlUtil.cpp --- CtrlUtil.cpp 22 Jan 2006 23:22:37 -0000 1.1.1.1 +++ CtrlUtil.cpp 22 Jan 2006 23:26:52 -0000 @@ -183,8 +183,8 @@ FileSelector& FileSelector::Type(const char *name, const char *ext) { FileType& t = type.Add(); - t.name = name; - t.ext = ext; + t.name = ToSystemCharset(name); + t.ext = ToSystemCharset(ext); return *this; } @@ -275,23 +275,22 @@ int bufsize = ofn.nMaxFile = (multi ? 32000 : _MAX_PATH); Buffer buffer(bufsize); *(ofn.lpstrFile = buffer) = 0; - String filedir; if(!filename.IsEmpty()) { String out; for(int i = 0; i < filename.GetCount(); i++) { if(*ofn.lpstrInitialDir == 0 && FindFile().Search(AppendFileName(GetFileDirectory(filename[i]), "*"))) - ofn.lpstrInitialDir = filedir = GetFileDirectory(filename[i]); + ofn.lpstrInitialDir = GetFileDirectory(filename[i]); if(!open || FileExists(filename[i])) { String fn = GetFileName(filename[i]); if(!IsNull(fn)) { if(multi && fn.Find(' ') >= 0) - out << '\"' << fn << '\"'; + out << '\"' << ToSystemCharset(fn) << '\"'; else - out << fn; + out << ToSystemCharset(fn); out.Cat(0); } } @@ -299,12 +298,14 @@ int l = min(out.GetLength(), bufsize - 1); memcpy(buffer, out, l + 1); } + String title; if(dlgtitle) - ofn.lpstrTitle = dlgtitle; + title = ToSystemCharset(dlgtitle); else if(open) - ofn.lpstrTitle = t_("Open.."); + title = ToSystemCharset(t_("Open..")); else - ofn.lpstrTitle = t_("Save as"); + title = ToSystemCharset(t_("Save as")); + ofn.lpstrTitle = ~title; if(!defext.IsEmpty()) ofn.lpstrDefExt = defext; bool res = !!(open ? GetOpenFileName : GetSaveFileName)(&ofn); @@ -315,7 +316,7 @@ } if(!res && CommDlgExtendedError() == FNERR_INVALIDFILENAME) { - ofn.lpstrInitialDir = filedir = Null; + ofn.lpstrInitialDir = 0; res = !!(open ? GetOpenFileName : GetSaveFileName)(&ofn); } if(!res) @@ -327,14 +328,14 @@ activedir = s; s += strlen(s); if(s[1] == 0) - filename.Add() = activedir; + filename.Add() = FromSystemCharset(activedir); else do - filename.Add() = AppendFileName(activedir, ++s); + filename.Add() = FromSystemCharset(AppendFileName(activedir, ++s)); while((s += strlen(s))[1]); } else { - filename.Add(ofn.lpstrFile); + filename.Add(FromSystemCharset(ofn.lpstrFile)); activedir = GetFileDirectory(filename[0]); } readonly = ofn.Flags & OFN_READONLY ? TRUE : FALSE;