summaryrefslogtreecommitdiff
path: root/utilities.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utilities.cpp')
-rw-r--r--utilities.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/utilities.cpp b/utilities.cpp
index f2d717d..e0661a3 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -79,7 +79,7 @@ char *date()
void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szExtDesc)
{
- TCHAR str[MAX_PATH+2] = {0};
+ TCHAR str[MAX_PATH+2] = {0}, *tmp;
OPENFILENAME ofn={0};
TCHAR filter[512], *pfilter;
ofn.lStructSize=CDSIZEOF_STRUCT(OPENFILENAME,lpTemplateName);
@@ -91,7 +91,9 @@ void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szEx
pfilter[_tcslen(pfilter)+1] = '\0';
pfilter[_tcslen(pfilter)+2] = '\0';
ofn.lpstrFilter=filter;
- _tcscpy(str, UniGetContactSettingUtf(0, szModuleName, szSetting, _T("")));
+ tmp = UniGetContactSettingUtf(0, szModuleName, szSetting, _T(""));
+ _tcscpy(str, tmp);
+ mir_free(tmp);
if(_tcslen(str)< 2)
str[0] = '\0';
ofn.lpstrFile=str;
@@ -217,3 +219,19 @@ void storeOutput(HANDLE ahandle, string *output)
output->append(readbuffer, 10);
} while (available>0);
}
+
+void cp866_to_cp1251(string *str)
+{
+ string::iterator p;
+ for(p = str->begin(); p != str->end(); p++)
+ {
+ if(*p > -129 && *p < -80)
+ *p += 64;
+ else if(*p > -33 && *p < -16)
+ *p += 16;
+ else if(*p == -16)
+ *p -= 72;
+ else if(*p == -17)
+ *p -= 57;
+ }
+}