From 6e53dfca72b932c4bdcd7aa02ca62bf8b2630eac Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 26 Jul 2016 09:20:25 +0000 Subject: less TCHARs: - TCHAR is replaced with wchar_t everywhere; - LPGENT replaced with either LPGENW or LPGEN; - fixes for ANSI plugins that improperly used _t functions; - TCHAR *t removed from MAllStrings; - ptszGroup, ptszTitle & ptszTab in OPTIONSDIALOGPAGE replaced with pwsz* git-svn-id: http://svn.miranda-ng.org/main/trunk@17133 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/SpellChecker/src/RichEdit.cpp | 20 ++-- plugins/SpellChecker/src/RichEdit.h | 10 +- plugins/SpellChecker/src/ardialog.cpp | 20 ++-- plugins/SpellChecker/src/ardialog.h | 6 +- plugins/SpellChecker/src/autoreplace.cpp | 48 +++++----- plugins/SpellChecker/src/autoreplace.h | 22 ++--- plugins/SpellChecker/src/dictionary.cpp | 132 +++++++++++++------------- plugins/SpellChecker/src/dictionary.h | 28 +++--- plugins/SpellChecker/src/options.cpp | 28 +++--- plugins/SpellChecker/src/options.h | 2 +- plugins/SpellChecker/src/spellchecker.cpp | 30 +++--- plugins/SpellChecker/src/stdafx.h | 18 ++-- plugins/SpellChecker/src/utils.cpp | 152 +++++++++++++++--------------- 13 files changed, 258 insertions(+), 258 deletions(-) (limited to 'plugins/SpellChecker/src') diff --git a/plugins/SpellChecker/src/RichEdit.cpp b/plugins/SpellChecker/src/RichEdit.cpp index ea5846a42a..1317f767cd 100644 --- a/plugins/SpellChecker/src/RichEdit.cpp +++ b/plugins/SpellChecker/src/RichEdit.cpp @@ -143,7 +143,7 @@ int RichEdit::GetLineCount() const return SendMessage(EM_GETLINECOUNT, 0, 0); } -void RichEdit::GetLine(int line, TCHAR *text, size_t text_len) const +void RichEdit::GetLine(int line, wchar_t *text, size_t text_len) const { *((WORD*)text) = WORD(text_len - 1); unsigned size = (unsigned)SendMessage(EM_GETLINE, (WPARAM)line, (LPARAM)text); @@ -152,7 +152,7 @@ void RichEdit::GetLine(int line, TCHAR *text, size_t text_len) const // to make both implementations return same size int lineLen = GetLineLength(line); size = (unsigned)max(0, min((int)text_len - 1, min((int)size, lineLen))); - text[size] = _T('\0'); + text[size] = '\0'; } int RichEdit::GetLineLength(int line) const @@ -193,7 +193,7 @@ int RichEdit::GetTextLength() const return GetWindowTextLength(m_hwnd); } -TCHAR* RichEdit::GetText(int start, int end) const +wchar_t* RichEdit::GetText(int start, int end) const { if (end <= start) end = GetTextLength(); @@ -211,26 +211,26 @@ TCHAR* RichEdit::GetText(int start, int end) const return mir_tstrdup(L""); } - TCHAR *res = mir_u2t(text); + wchar_t *res = mir_u2t(text); range->Release(); ::SysFreeString(text); return res; } int len = (GetTextLength() + 1); - TCHAR *tmp = (TCHAR *)mir_alloc(len * sizeof(TCHAR)); + wchar_t *tmp = (wchar_t *)mir_alloc(len * sizeof(wchar_t)); GetWindowText(m_hwnd, tmp, len); tmp[len] = 0; - TCHAR *ret = (TCHAR *)mir_alloc((end - start + 1) * sizeof(TCHAR)); - memmove(ret, &tmp[start], (end - start) * sizeof(TCHAR)); + wchar_t *ret = (wchar_t *)mir_alloc((end - start + 1) * sizeof(wchar_t)); + memmove(ret, &tmp[start], (end - start) * sizeof(wchar_t)); ret[end - start] = 0; mir_free(tmp); return ret; } -void RichEdit::ReplaceSel(const TCHAR *new_text) +void RichEdit::ReplaceSel(const wchar_t *new_text) { if (m_stopped) { CHARRANGE sel = GetSel(); @@ -249,7 +249,7 @@ void RichEdit::ReplaceSel(const TCHAR *new_text) else SendMessage(EM_REPLACESEL, m_undoEnabled, (LPARAM)new_text); } -int RichEdit::Replace(int start, int end, const TCHAR *new_text) +int RichEdit::Replace(int start, int end, const wchar_t *new_text) { CHARRANGE sel = GetSel(); CHARRANGE replace_sel = { start, end }; @@ -262,7 +262,7 @@ int RichEdit::Replace(int start, int end, const TCHAR *new_text) return dif; } -int RichEdit::Insert(int pos, const TCHAR *text) +int RichEdit::Insert(int pos, const wchar_t *text) { CHARRANGE sel = GetSel(); CHARRANGE replace_sel = { pos, pos }; diff --git a/plugins/SpellChecker/src/RichEdit.h b/plugins/SpellChecker/src/RichEdit.h index 4556369c31..17ebe1e438 100644 --- a/plugins/SpellChecker/src/RichEdit.h +++ b/plugins/SpellChecker/src/RichEdit.h @@ -35,7 +35,7 @@ public: int GetCharFromPos(const POINT &pt); int GetLineCount() const; - void GetLine(int line, TCHAR *text, size_t text_len) const; + void GetLine(int line, wchar_t *text, size_t text_len) const; int GetLineLength(int line) const; int GetFirstCharOfLine(int line) const; int GetLineFromChar(int charPos) const; @@ -44,12 +44,12 @@ public: void SetSel(int start, int end); void SetSel(const CHARRANGE &sel); - TCHAR* GetText(int start, int end) const; + wchar_t* GetText(int start, int end) const; int GetTextLength() const; - void ReplaceSel(const TCHAR *new_text); - int Replace(int start, int end, const TCHAR *new_text); - int Insert(int pos, const TCHAR *text); + void ReplaceSel(const wchar_t *new_text); + int Replace(int start, int end, const wchar_t *new_text); + int Insert(int pos, const wchar_t *text); int Delete(int start, int end); private: diff --git a/plugins/SpellChecker/src/ardialog.cpp b/plugins/SpellChecker/src/ardialog.cpp index 3b1258508f..0b1a14fa56 100644 --- a/plugins/SpellChecker/src/ardialog.cpp +++ b/plugins/SpellChecker/src/ardialog.cpp @@ -25,8 +25,8 @@ static INT_PTR CALLBACK AddReplacementDlgProc(HWND hwndDlg, UINT msg, WPARAM wPa struct Data { Dictionary *dict; - tstring find; - tstring replace; + std::wstring find; + std::wstring replace; BOOL useVariables; BOOL modal; @@ -37,7 +37,7 @@ struct Data }; BOOL ShowAutoReplaceDialog(HWND parent, BOOL modal, - Dictionary *dict, const TCHAR *find, const TCHAR *replace, BOOL useVariables, + Dictionary *dict, const wchar_t *find, const wchar_t *replace, BOOL useVariables, BOOL findReadOnly, AutoReplaceDialogCallback callback, void *param) { Data *data = new Data(); @@ -79,11 +79,11 @@ static LRESULT CALLBACK OnlyCharsEditProc(HWND hwnd, UINT msg, WPARAM wParam, LP if (GetKeyState(VK_CONTROL) & 0x8000) // CTRL key break; { - TCHAR c = (TCHAR)wParam; + wchar_t c = (wchar_t)wParam; if (!data->dict->autoReplace->isWordChar(c)) return 1; - TCHAR tmp[2] = { c, 0 }; + wchar_t tmp[2] = { c, 0 }; CharLower(tmp); wParam = tmp[0]; @@ -96,10 +96,10 @@ static LRESULT CALLBACK OnlyCharsEditProc(HWND hwnd, UINT msg, WPARAM wParam, LP switch (msg) { case EM_PASTESPECIAL: case WM_PASTE: - TCHAR text[256]; + wchar_t text[256]; GetWindowText(hwnd, text, _countof(text)); - scoped_free dest = data->dict->autoReplace->filterText(text); + scoped_free dest = data->dict->autoReplace->filterText(text); SetWindowText(hwnd, dest); break; } @@ -171,7 +171,7 @@ static INT_PTR CALLBACK AddReplacementDlgProc(HWND hwndDlg, UINT msg, WPARAM wPa SendDlgItemMessage(hwndDlg, IDC_NEW, EM_LIMITTEXT, 256, 0); if (!data->find.empty()) { - scoped_free tmp = data->dict->autoReplace->filterText(data->find.c_str()); + scoped_free tmp = data->dict->autoReplace->filterText(data->find.c_str()); SetDlgItemText(hwndDlg, IDC_OLD, tmp); } if (!data->replace.empty()) @@ -213,7 +213,7 @@ static INT_PTR CALLBACK AddReplacementDlgProc(HWND hwndDlg, UINT msg, WPARAM wPa { Data *data = (Data *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - TCHAR find[256]; + wchar_t find[256]; if (data->findReadOnly) mir_tstrncpy(find, data->find.c_str(), _countof(find)); else { @@ -221,7 +221,7 @@ static INT_PTR CALLBACK AddReplacementDlgProc(HWND hwndDlg, UINT msg, WPARAM wPa lstrtrim(find); } - TCHAR replace[256]; + wchar_t replace[256]; GetDlgItemText(hwndDlg, IDC_NEW, replace, _countof(replace)); lstrtrim(replace); diff --git a/plugins/SpellChecker/src/ardialog.h b/plugins/SpellChecker/src/ardialog.h index 83f97c6026..6ece91cc4f 100644 --- a/plugins/SpellChecker/src/ardialog.h +++ b/plugins/SpellChecker/src/ardialog.h @@ -22,11 +22,11 @@ Boston, MA 02111-1307, USA. typedef void (*AutoReplaceDialogCallback)(BOOL canceled, Dictionary *dict, - const TCHAR *find, const TCHAR *replace, BOOL useVariables, - const TCHAR *original_find, void *param); + const wchar_t *find, const wchar_t *replace, BOOL useVariables, + const wchar_t *original_find, void *param); BOOL ShowAutoReplaceDialog(HWND parent, BOOL modal, - Dictionary *dict, const TCHAR *find, const TCHAR *replace, BOOL useVariables, + Dictionary *dict, const wchar_t *find, const wchar_t *replace, BOOL useVariables, BOOL findReadOnly, AutoReplaceDialogCallback callback, void *param); diff --git a/plugins/SpellChecker/src/autoreplace.cpp b/plugins/SpellChecker/src/autoreplace.cpp index 899146ffdf..a3ad88e928 100644 --- a/plugins/SpellChecker/src/autoreplace.cpp +++ b/plugins/SpellChecker/src/autoreplace.cpp @@ -24,13 +24,13 @@ AutoReplacement::AutoReplacement() { } -AutoReplacement::AutoReplacement(const TCHAR *replace, BOOL useVariables) +AutoReplacement::AutoReplacement(const wchar_t *replace, BOOL useVariables) : replace(replace), useVariables(useVariables) { } -AutoReplaceMap::AutoReplaceMap(TCHAR *aFilename, Dictionary *dict) +AutoReplaceMap::AutoReplaceMap(wchar_t *aFilename, Dictionary *dict) { m_dict = dict; mir_tstrncpy(m_filename, aFilename, _countof(m_filename)); @@ -39,7 +39,7 @@ AutoReplaceMap::AutoReplaceMap(TCHAR *aFilename, Dictionary *dict) void AutoReplaceMap::loadAutoReplaceMap() { - FILE *file = _tfopen(m_filename, L"rb"); + FILE *file = _wfopen(m_filename, L"rb"); if (file == NULL) return; @@ -88,17 +88,17 @@ void AutoReplaceMap::loadAutoReplaceMap() void AutoReplaceMap::writeAutoReplaceMap() { // Create path - TCHAR *p = _tcsrchr(m_filename, _T('\\')); + wchar_t *p = wcsrchr(m_filename, '\\'); if (p != NULL) { *p = 0; CreateDirectoryTreeT(m_filename); - *p = _T('\\'); + *p = '\\'; } // Write it - FILE *file = _tfopen(m_filename, L"wb"); + FILE *file = _wfopen(m_filename, L"wb"); if (file != NULL) { - map::iterator it = m_replacements.begin(); + map::iterator it = m_replacements.begin(); for (; it != m_replacements.end(); it++) { AutoReplacement &ar = it->second; @@ -115,32 +115,32 @@ void AutoReplaceMap::writeAutoReplaceMap() } -BOOL AutoReplaceMap::isWordChar(TCHAR c) +BOOL AutoReplaceMap::isWordChar(wchar_t c) { if (IsNumber(c)) return TRUE; - if (_tcschr(L"-_.!@#$%&*()[]{}<>:?/\\=+", c) != NULL) + if (wcschr(L"-_.!@#$%&*()[]{}<>:?/\\=+", c) != NULL) return TRUE; return m_dict->isWordChar(c); } -TCHAR* AutoReplaceMap::autoReplace(const TCHAR * word) +wchar_t* AutoReplaceMap::autoReplace(const wchar_t * word) { - scoped_free from = _tcslwr(_tcsdup(word)); + scoped_free from = wcslwr(wcsdup(word)); if (m_replacements.find(from.get()) == m_replacements.end()) return NULL; AutoReplacement &ar = m_replacements[from.get()]; - TCHAR *to; + wchar_t *to; if (ar.useVariables) - to = variables_parsedup((TCHAR *)ar.replace.c_str(), (TCHAR *)word, NULL); + to = variables_parsedup((wchar_t *)ar.replace.c_str(), (wchar_t *)word, NULL); else - to = _tcsdup(ar.replace.c_str()); + to = wcsdup(ar.replace.c_str()); // Wich case to use? size_t len = mir_tstrlen(word); @@ -156,17 +156,17 @@ TCHAR* AutoReplaceMap::autoReplace(const TCHAR * word) return CharUpper(to); // First upper - TCHAR tmp[2]; + wchar_t tmp[2]; tmp[0] = to[0]; - tmp[1] = _T('\0'); + tmp[1] = '\0'; CharUpper(tmp); to[0] = tmp[0]; return to; } -TCHAR* AutoReplaceMap::filterText(const TCHAR *find) +wchar_t* AutoReplaceMap::filterText(const wchar_t *find) { - TCHAR *ret = _tcsdup(find); + wchar_t *ret = wcsdup(find); int len = mir_tstrlen(ret); int pos = 0; for (int i = 0; i < len; i++) @@ -176,27 +176,27 @@ TCHAR* AutoReplaceMap::filterText(const TCHAR *find) return CharLower(ret); } -void AutoReplaceMap::add(const TCHAR * aFrom, const TCHAR * to, BOOL useVariables) +void AutoReplaceMap::add(const wchar_t * aFrom, const wchar_t * to, BOOL useVariables) { - scoped_free from = filterText(aFrom); + scoped_free from = filterText(aFrom); m_replacements[from.get()] = AutoReplacement(to, useVariables); writeAutoReplaceMap(); } -void AutoReplaceMap::copyMap(map *replacements) +void AutoReplaceMap::copyMap(map *replacements) { *replacements = m_replacements; } -void AutoReplaceMap::setMap(const map &replacements) +void AutoReplaceMap::setMap(const map &replacements) { m_replacements.clear(); - map::const_iterator it = replacements.begin(); + map::const_iterator it = replacements.begin(); for (; it != replacements.end(); it++) { - scoped_free from = filterText(it->first.c_str()); + scoped_free from = filterText(it->first.c_str()); m_replacements[from.get()] = it->second; } diff --git a/plugins/SpellChecker/src/autoreplace.h b/plugins/SpellChecker/src/autoreplace.h index 8a81fdfcbf..316f015e0d 100644 --- a/plugins/SpellChecker/src/autoreplace.h +++ b/plugins/SpellChecker/src/autoreplace.h @@ -24,11 +24,11 @@ Boston, MA 02111-1307, USA. struct AutoReplacement { - tstring replace; + std::wstring replace; BOOL useVariables; AutoReplacement(); - AutoReplacement(const TCHAR *replace, BOOL useVariables); + AutoReplacement(const wchar_t *replace, BOOL useVariables); }; @@ -38,31 +38,31 @@ class Dictionary; class AutoReplaceMap { private: - TCHAR m_filename[1024]; + wchar_t m_filename[1024]; Dictionary *m_dict; - map m_replacements; + map m_replacements; void loadAutoReplaceMap(); void writeAutoReplaceMap(); public: - AutoReplaceMap(TCHAR *filename, Dictionary *dict); + AutoReplaceMap(wchar_t *filename, Dictionary *dict); - TCHAR* filterText(const TCHAR *find); - BOOL isWordChar(TCHAR c); + wchar_t* filterText(const wchar_t *find); + BOOL isWordChar(wchar_t c); /// Return an auto replacement to a word or NULL if none exists. /// You have to free the item. - TCHAR* autoReplace(const TCHAR *word); + wchar_t* autoReplace(const wchar_t *word); /// Add a word to the list of auto-replaced words - void add(const TCHAR *from, const TCHAR *to, BOOL useVariables = FALSE); + void add(const wchar_t *from, const wchar_t *to, BOOL useVariables = FALSE); /// Make a copy of the auto replace map - void copyMap(map *replacements); + void copyMap(map *replacements); /// Make a copy of the auto replace map - void setMap(const map &replacements); + void setMap(const map &replacements); }; diff --git a/plugins/SpellChecker/src/dictionary.cpp b/plugins/SpellChecker/src/dictionary.cpp index 58218fc2b1..efad448000 100644 --- a/plugins/SpellChecker/src/dictionary.cpp +++ b/plugins/SpellChecker/src/dictionary.cpp @@ -25,16 +25,16 @@ Boston, MA 02111-1307, USA. // Additional languages that i could not find in Windows struct { - TCHAR *language; - TCHAR *localized_name; + wchar_t *language; + wchar_t *localized_name; } aditionalLanguages[] = { - { L"tl_PH", LPGENT("Tagalog (Philippines)") }, - { L"de_frami_neu", LPGENT("German (Germany)") } + { L"tl_PH", LPGENW("Tagalog (Philippines)") }, + { L"de_frami_neu", LPGENW("German (Germany)") } }; struct { - TCHAR *name; - TCHAR *key; + wchar_t *name; + wchar_t *key; } otherHunspellApps[] = { { L"Thunderbird", L"thunderbird.exe" }, { L"Firefox", L"firefox.exe" } @@ -355,19 +355,19 @@ void LoadThread(LPVOID hd); class HunspellDictionary : public Dictionary { protected: - TCHAR fileWithoutExtension[1024]; - TCHAR userPath[1024]; + wchar_t fileWithoutExtension[1024]; + wchar_t userPath[1024]; volatile int loaded; Hunspell *hunspell; - TCHAR *wordChars; + wchar_t *wordChars; UINT codePage; void loadCustomDict() { - TCHAR filename[1024]; + wchar_t filename[1024]; mir_sntprintf(filename, L"%s\\%s.cdic", userPath, language); - FILE *file = _tfopen(filename, L"rb"); + FILE *file = _wfopen(filename, L"rb"); if (file != NULL) { char tmp[1024]; int c, pos = 0; @@ -388,14 +388,14 @@ protected: } } - void appendToCustomDict(const TCHAR *word) + void appendToCustomDict(const wchar_t *word) { CreateDirectoryTreeT(userPath); - TCHAR filename[1024]; + wchar_t filename[1024]; mir_sntprintf(filename, L"%s\\%s.cdic", userPath, language); - FILE *file = _tfopen(filename, L"ab"); + FILE *file = _wfopen(filename, L"ab"); if (file != NULL) { char tmp[1024]; toHunspell(tmp, word, _countof(tmp)); @@ -404,7 +404,7 @@ protected: } } - virtual void addWordInternal(const TCHAR * word) + virtual void addWordInternal(const wchar_t * word) { if (loaded != LANGUAGE_LOADED) return; @@ -415,12 +415,12 @@ protected: hunspell->add(hunspell_word); } - void toHunspell(char *hunspellWord, const TCHAR *word, size_t hunspellWordLen) + void toHunspell(char *hunspellWord, const wchar_t *word, size_t hunspellWordLen) { WideCharToMultiByte(codePage, 0, word, -1, hunspellWord, (int)hunspellWordLen, NULL, NULL); } - TCHAR* fromHunspell(const char *hunspellWord) + wchar_t* fromHunspell(const char *hunspellWord) { int len = MultiByteToWideChar(codePage, 0, hunspellWord, -1, NULL, 0); WCHAR *ret = (WCHAR *)malloc((len + 1) * sizeof(WCHAR)); @@ -428,31 +428,31 @@ protected: return ret; } - TCHAR* fromHunspellAndFree(char *hunspellWord) + wchar_t* fromHunspellAndFree(char *hunspellWord) { if (hunspellWord == NULL) return NULL; - TCHAR *ret = fromHunspell(hunspellWord); + wchar_t *ret = fromHunspell(hunspellWord); free(hunspellWord); return ret; } public: - HunspellDictionary(TCHAR *aLanguage, TCHAR *aFileWithoutExtension, TCHAR *anUserPath, TCHAR *aSource) + HunspellDictionary(wchar_t *aLanguage, wchar_t *aFileWithoutExtension, wchar_t *anUserPath, wchar_t *aSource) { mir_tstrncpy(language, aLanguage, _countof(language)); mir_tstrncpy(fileWithoutExtension, aFileWithoutExtension, _countof(fileWithoutExtension)); mir_tstrncpy(userPath, anUserPath, _countof(userPath)); if (aSource == NULL) - source[0] = _T('\0'); + source[0] = '\0'; else mir_tstrncpy(source, aSource, _countof(source)); loaded = LANGUAGE_NOT_LOADED; - localized_name[0] = _T('\0'); - english_name[0] = _T('\0'); - full_name[0] = _T('\0'); + localized_name[0] = '\0'; + english_name[0] = '\0'; + full_name[0] = '\0'; hunspell = NULL; wordChars = NULL; codePage = CP_ACP; @@ -467,14 +467,14 @@ public: free(wordChars); } - TCHAR * merge(TCHAR * s1, TCHAR *s2) + wchar_t * merge(wchar_t * s1, wchar_t *s2) { int len1 = (s1 == NULL ? 0 : mir_tstrlen(s1)); int len2 = (s2 == NULL ? 0 : mir_tstrlen(s2)); - TCHAR *ret; + wchar_t *ret; if (len1 > 0 && len2 > 0) { - ret = (TCHAR *)malloc(sizeof(TCHAR) * (len1 + len2 + 1)); + ret = (wchar_t *)malloc(sizeof(wchar_t) * (len1 + len2 + 1)); mir_tstrncpy(ret, s1, len1 + 1); mir_tstrncpy(&ret[len1], s2, len2 + 1); @@ -490,7 +490,7 @@ public: FREE(s1); } else { - ret = (TCHAR *)malloc(sizeof(TCHAR)); + ret = (wchar_t *)malloc(sizeof(wchar_t)); ret[0] = 0; FREE(s1); @@ -500,13 +500,13 @@ public: // Remove duplicated chars int last = mir_tstrlen(ret) - 1; for (int i = 0; i <= last; i++) { - TCHAR c = ret[i]; + wchar_t c = ret[i]; for (int j = last; j > i; j--) { if (c != ret[j]) continue; if (j != last) ret[j] = ret[last]; - ret[last] = _T('\0'); + ret[last] = '\0'; last--; } } @@ -530,7 +530,7 @@ public: // Get codepage const char *dic_enc = hunspell->get_dic_encoding(); - TCHAR *hwordchars; + wchar_t *hwordchars; if (mir_strcmp(dic_enc, "UTF-8") == 0) { codePage = CP_UTF8; @@ -550,8 +550,8 @@ public: hwordchars = fromHunspell(hunspell->get_wordchars()); } - TCHAR *casechars = fromHunspellAndFree(get_casechars(dic_enc)); - TCHAR *try_string = fromHunspellAndFree(hunspell->get_try_string()); + wchar_t *casechars = fromHunspellAndFree(get_casechars(dic_enc)); + wchar_t *try_string = fromHunspellAndFree(hunspell->get_try_string()); wordChars = merge(merge(casechars, hwordchars), try_string); @@ -569,7 +569,7 @@ public: } // Return TRUE if the word is correct - virtual BOOL spell(const TCHAR *word) + virtual BOOL spell(const wchar_t *word) { load(); if (loaded != LANGUAGE_LOADED) @@ -584,7 +584,7 @@ public: } // Return a list of suggestions to a word - virtual Suggestions suggest(const TCHAR * word) + virtual Suggestions suggest(const wchar_t * word) { Suggestions ret = { 0 }; @@ -600,7 +600,7 @@ public: if (ret.count > 0 && words != NULL) { // Oki, lets make our array - ret.words = (TCHAR **)malloc(ret.count * sizeof(TCHAR *)); + ret.words = (wchar_t **)malloc(ret.count * sizeof(wchar_t *)); for (unsigned i = 0; i < ret.count; i++) { ret.words[i] = fromHunspell(words[i]); free(words[i]); @@ -613,7 +613,7 @@ public: } // Return a list of auto suggestions to a word - virtual Suggestions autoSuggest(const TCHAR * word) + virtual Suggestions autoSuggest(const wchar_t * word) { Suggestions ret = { 0 }; @@ -632,7 +632,7 @@ public: // Oki, lets make our array ret.count = count; - ret.words = (TCHAR **)malloc(ret.count * sizeof(TCHAR *)); + ret.words = (wchar_t **)malloc(ret.count * sizeof(wchar_t *)); for (int i = 0; i < count; i++) { ret.words[i] = fromHunspell(words[i]); free(words[i]); @@ -644,7 +644,7 @@ public: // Return a list of auto suggestions to a word // You have to free the list AND each item - virtual TCHAR * autoSuggestOne(const TCHAR * word) + virtual wchar_t * autoSuggestOne(const wchar_t * word) { load(); if (loaded != LANGUAGE_LOADED) @@ -659,7 +659,7 @@ public: if (count <= 0) return NULL; - TCHAR *ret = fromHunspell(words[0]); + wchar_t *ret = fromHunspell(words[0]); // Oki, lets make our array for (int i = 0; i < count; i++) @@ -670,7 +670,7 @@ public: } // Return TRUE if the char is a word char - virtual BOOL isWordChar(TCHAR c) + virtual BOOL isWordChar(wchar_t c) { if (c == 0) return FALSE; @@ -679,7 +679,7 @@ public: if (loaded != LANGUAGE_LOADED) return TRUE; - return _tcschr(wordChars, (_TINT)c) != NULL; + return wcschr(wordChars, (_TINT)c) != NULL; } // Assert that all needed data is loaded @@ -698,14 +698,14 @@ public: // Add a word to the user custom dict - virtual void addWord(const TCHAR * word) + virtual void addWord(const wchar_t * word) { addWordInternal(word); appendToCustomDict(word); } // Add a word to the list of ignored words - virtual void ignoreWord(const TCHAR * word) + virtual void ignoreWord(const wchar_t * word) { addWordInternal(word); } @@ -725,15 +725,15 @@ LIST *tmp_dicts; // To get the names of the languages BOOL CALLBACK EnumLocalesProc(LPTSTR lpLocaleString) { - TCHAR *stopped = NULL; - USHORT langID = (USHORT)_tcstol(lpLocaleString, &stopped, 16); + wchar_t *stopped = NULL; + USHORT langID = (USHORT)wcstol(lpLocaleString, &stopped, 16); - TCHAR ini[32]; - TCHAR end[32]; + wchar_t ini[32]; + wchar_t end[32]; GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO639LANGNAME, ini, _countof(ini)); GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO3166CTRYNAME, end, _countof(end)); - TCHAR name[64]; + wchar_t name[64]; mir_sntprintf(name, L"%s_%s", ini, end); for (int i = 0; i < tmp_dicts->getCount(); i++) { @@ -747,10 +747,10 @@ BOOL CALLBACK EnumLocalesProc(LPTSTR lpLocaleString) if (dict->localized_name[0] == 0) GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SNATIVEDISPLAYNAME, dict->localized_name, _countof(dict->localized_name)); if (dict->localized_name[0] == 0 && dict->english_name[0] != 0) { - TCHAR country[1024]; + wchar_t country[1024]; GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SENGCOUNTRY, country, _countof(country)); - TCHAR localName[1024]; + wchar_t localName[1024]; if (country[0] != 0) mir_sntprintf(localName, L"%s (%s)", dict->english_name, country); else @@ -778,7 +778,7 @@ void GetDictsInfo(LIST &dicts) for (int i = 0; i < dicts.getCount(); i++) { Dictionary *dict = dicts[i]; - if (dict->full_name[0] == _T('\0')) { + if (dict->full_name[0] == '\0') { DBVARIANT dbv; char lang[128]; @@ -788,7 +788,7 @@ void GetDictsInfo(LIST &dicts) db_free(&dbv); } - if (dict->localized_name[0] == _T('\0')) { + if (dict->localized_name[0] == '\0') { for (size_t j = 0; j < _countof(aditionalLanguages); j++) { if (!mir_tstrcmp(aditionalLanguages[j].language, dict->language)) { mir_tstrncpy(dict->localized_name, TranslateTS(aditionalLanguages[j].localized_name), _countof(dict->localized_name)); @@ -797,7 +797,7 @@ void GetDictsInfo(LIST &dicts) } } - if (dict->localized_name[0] != _T('\0')) { + if (dict->localized_name[0] != '\0') { mir_sntprintf(dict->full_name, L"%s [%s]", dict->localized_name, dict->language); } else { @@ -808,10 +808,10 @@ void GetDictsInfo(LIST &dicts) } -void GetHunspellDictionariesFromFolder(LIST &dicts, TCHAR *path, TCHAR *user_path, TCHAR *source) +void GetHunspellDictionariesFromFolder(LIST &dicts, wchar_t *path, wchar_t *user_path, wchar_t *source) { // Load the language files and create an array with then - TCHAR file[1024] = { 0 }; + wchar_t file[1024] = { 0 }; mir_sntprintf(file, L"%s\\*.dic", path); BOOL found = FALSE; @@ -833,14 +833,14 @@ void GetHunspellDictionariesFromFolder(LIST &dicts, TCHAR *path, TCH if (attrib == 0xFFFFFFFF || (attrib & FILE_ATTRIBUTE_DIRECTORY)) continue; - ffd.cFileName[mir_tstrlen(ffd.cFileName) - 4] = _T('\0'); + ffd.cFileName[mir_tstrlen(ffd.cFileName) - 4] = '\0'; - TCHAR *lang = ffd.cFileName; + wchar_t *lang = ffd.cFileName; // Replace - for _ for (size_t i = 0; i < mir_tstrlen(lang); i++) - if (lang[i] == _T('-')) - lang[i] = _T('_'); + if (lang[i] == '-') + lang[i] = '_'; // Check if dict is new bool exists = false; @@ -850,7 +850,7 @@ void GetHunspellDictionariesFromFolder(LIST &dicts, TCHAR *path, TCH if (!exists) { found = TRUE; - file[mir_tstrlen(file) - 4] = _T('\0'); + file[mir_tstrlen(file) - 4] = '\0'; dicts.insert(new HunspellDictionary(lang, file, user_path, source)); } } while (FindNextFile(hFFD, &ffd)); @@ -861,7 +861,7 @@ void GetHunspellDictionariesFromFolder(LIST &dicts, TCHAR *path, TCH // Return a list of avaible languages -void GetAvaibleDictionaries(LIST &dicts, TCHAR *path, TCHAR *user_path) +void GetAvaibleDictionaries(LIST &dicts, wchar_t *path, wchar_t *user_path) { // Get miranda folder dicts GetHunspellDictionariesFromFolder(dicts, path, user_path, NULL); @@ -869,7 +869,7 @@ void GetAvaibleDictionaries(LIST &dicts, TCHAR *path, TCHAR *user_pa if (opts.use_other_apps_dicts) { // Get other apps dicts for (int i = 0; i < _countof(otherHunspellApps); i++) { - TCHAR key[1024]; + wchar_t key[1024]; mir_sntprintf(key, APPPATH, otherHunspellApps[i].key); HKEY hKey = 0; @@ -893,8 +893,8 @@ void GetAvaibleDictionaries(LIST &dicts, TCHAR *path, TCHAR *user_pa if (ERROR_SUCCESS != RegEnumValue(hKey, local, key, &cchValue, NULL, NULL, NULL, NULL)) break; key[cchValue] = 0; - TCHAR *pos; - if (pos = _tcsrchr(key, _T('\\'))) { + wchar_t *pos; + if (pos = wcsrchr(key, '\\')) { if (!mir_tstrcmpi(&pos[1], otherHunspellApps[i].key)) { pos[0] = 0; lResult = ERROR_SUCCESS; @@ -907,7 +907,7 @@ void GetAvaibleDictionaries(LIST &dicts, TCHAR *path, TCHAR *user_pa } if (ERROR_SUCCESS == lResult) { - TCHAR folder[1024]; + wchar_t folder[1024]; mir_sntprintf(folder, L"%s\\Dictionaries", key); GetHunspellDictionariesFromFolder(languages, folder, user_path, otherHunspellApps[i].name); diff --git a/plugins/SpellChecker/src/dictionary.h b/plugins/SpellChecker/src/dictionary.h index 09902435f6..da70a6a4c2 100644 --- a/plugins/SpellChecker/src/dictionary.h +++ b/plugins/SpellChecker/src/dictionary.h @@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA. struct Suggestions { - TCHAR ** words; + wchar_t ** words; size_t count; }; @@ -32,37 +32,37 @@ struct Suggestions { // All dictionaries use a lazy interface class Dictionary { public: - TCHAR language[128]; - TCHAR localized_name[128]; - TCHAR english_name[128]; - TCHAR full_name[256]; - TCHAR source[128]; + wchar_t language[128]; + wchar_t localized_name[128]; + wchar_t english_name[128]; + wchar_t full_name[256]; + wchar_t source[128]; AutoReplaceMap *autoReplace; HANDLE hIcolib; virtual ~Dictionary(); // Return TRUE if the word is correct - virtual BOOL spell(const TCHAR *) = 0; + virtual BOOL spell(const wchar_t *) = 0; // Return a list of suggestions to a word - virtual Suggestions suggest(const TCHAR * word) = 0; + virtual Suggestions suggest(const wchar_t * word) = 0; // Return a list of auto suggestions to a word - virtual Suggestions autoSuggest(const TCHAR * word) = 0; + virtual Suggestions autoSuggest(const wchar_t * word) = 0; // Return a auto suggestions to a word // You have to free the item - virtual TCHAR * autoSuggestOne(const TCHAR * word) = 0; + virtual wchar_t * autoSuggestOne(const wchar_t * word) = 0; // Return TRUE if the char is a word char - virtual BOOL isWordChar(TCHAR c) = 0; + virtual BOOL isWordChar(wchar_t c) = 0; // Add a word to the user custom dict - virtual void addWord(const TCHAR * word) = 0; + virtual void addWord(const wchar_t * word) = 0; // Add a word to the list of ignored words - virtual void ignoreWord(const TCHAR * word) = 0; + virtual void ignoreWord(const wchar_t * word) = 0; // Assert that all needed data is loaded virtual void load() = 0; @@ -74,7 +74,7 @@ public: // Return a list of avaible languages -void GetAvaibleDictionaries(LIST &dicts, TCHAR *path, TCHAR *user_path); +void GetAvaibleDictionaries(LIST &dicts, wchar_t *path, wchar_t *user_path); // Free the list returned by GetAvaibleDictionaries void FreeDictionaries(LIST &dicts); diff --git a/plugins/SpellChecker/src/options.cpp b/plugins/SpellChecker/src/options.cpp index ed625ab6f2..c0bc78ab5a 100644 --- a/plugins/SpellChecker/src/options.cpp +++ b/plugins/SpellChecker/src/options.cpp @@ -88,7 +88,7 @@ void LoadOptions() LoadOpts(autoReplaceControls, _countof(autoReplaceControls), MODULE_NAME); if (languages.getCount() <= 0) { - opts.default_language[0] = _T('\0'); + opts.default_language[0] = '\0'; return; } @@ -213,7 +213,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP if (sel >= languages.getCount()) sel = 0; db_set_ts(NULL, MODULE_NAME, "DefaultLanguage", - (TCHAR *)languages[sel]->language); + (wchar_t *)languages[sel]->language); mir_tstrcpy(opts.default_language, languages[sel]->language); } } @@ -247,21 +247,21 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LP struct AutoreplaceData { Dictionary *dict; - map autoReplaceMap; + map autoReplaceMap; BOOL initialized; BOOL changed; AutoreplaceData(Dictionary *dict) : dict(dict), initialized(FALSE), changed(FALSE) {} - void RemoveWord(const TCHAR *aWord) + void RemoveWord(const wchar_t *aWord) { - map::iterator it = autoReplaceMap.find(aWord); + map::iterator it = autoReplaceMap.find(aWord); if (it != autoReplaceMap.end()) autoReplaceMap.erase(it); changed = TRUE; } - void AddWord(const TCHAR *find, const TCHAR *replace, BOOL useVars) + void AddWord(const wchar_t *find, const wchar_t *replace, BOOL useVars) { autoReplaceMap[find] = AutoReplacement(replace, useVars); changed = TRUE; @@ -302,26 +302,26 @@ static void LoadReplacements(HWND hwndDlg) data->initialized = TRUE; } - map::iterator it = data->autoReplaceMap.begin(); + map::iterator it = data->autoReplaceMap.begin(); for (int i = 0; it != data->autoReplaceMap.end(); it++, i++) { LVITEM item = { 0 }; item.mask = LVIF_TEXT | LVIF_PARAM; item.iItem = i; item.iSubItem = 0; - item.pszText = (TCHAR *)it->first.c_str(); + item.pszText = (wchar_t *)it->first.c_str(); item.lParam = i; ListView_InsertItem(hList, &item); - ListView_SetItemText(hList, i, 1, (TCHAR *)it->second.replace.c_str()); + ListView_SetItemText(hList, i, 1, (wchar_t *)it->second.replace.c_str()); } EnableDisableCtrls(hwndDlg); } static void SaveNewReplacements(BOOL canceled, Dictionary*, - const TCHAR *find, const TCHAR *replace, BOOL useVariables, - const TCHAR *original_find, void *param) + const wchar_t *find, const wchar_t *replace, BOOL useVariables, + const wchar_t *original_find, void *param) { if (canceled) return; @@ -342,8 +342,8 @@ static void ShowAddReplacement(HWND hwndDlg, int item = -1) AutoreplaceData *data = (AutoreplaceData *)SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_GETITEMDATA, sel, 0); - TCHAR find[256]; - const TCHAR *replace = NULL; + wchar_t find[256]; + const wchar_t *replace = NULL; BOOL useVariables = FALSE; if (item < 0) @@ -430,7 +430,7 @@ static INT_PTR CALLBACK AutoreplaceDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam sel = SendMessage(hList, LVM_GETNEXTITEM, -1, LVNI_SELECTED); while (sel >= 0) { - TCHAR tmp[256]; + wchar_t tmp[256]; ListView_GetItemText(hList, sel, 0, tmp, _countof(tmp)); data->RemoveWord(tmp); diff --git a/plugins/SpellChecker/src/options.h b/plugins/SpellChecker/src/options.h index 65e33c0f4e..8d699d4adf 100644 --- a/plugins/SpellChecker/src/options.h +++ b/plugins/SpellChecker/src/options.h @@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. struct Options { - TCHAR default_language[32]; + wchar_t default_language[32]; BOOL auto_replace_dict; BOOL auto_replace_user; BOOL ignore_uppercase; diff --git a/plugins/SpellChecker/src/spellchecker.cpp b/plugins/SpellChecker/src/spellchecker.cpp index 7d12a021f5..e6217118c4 100644 --- a/plugins/SpellChecker/src/spellchecker.cpp +++ b/plugins/SpellChecker/src/spellchecker.cpp @@ -40,13 +40,13 @@ HINSTANCE hInst; int hLangpack = 0; HANDLE hDictionariesFolder = NULL; -TCHAR *dictionariesFolder; +wchar_t *dictionariesFolder; HANDLE hCustomDictionariesFolder = NULL; -TCHAR *customDictionariesFolder; +wchar_t *customDictionariesFolder; HANDLE hFlagsDllFolder = NULL; -TCHAR *flagsDllFolder; +wchar_t *flagsDllFolder; HBITMAP hCheckedBmp; BITMAP bmpChecked; @@ -79,7 +79,7 @@ static int IconsChanged(WPARAM, LPARAM) for (int i = 0; i < languages.getCount(); i++) { sid.dwId = i; - TCHAR tmp[128]; + wchar_t tmp[128]; mir_sntprintf(tmp, L"%s - %s", TranslateT("Spell Checker"), languages[i]->full_name); sid.tszTooltip = tmp; @@ -108,19 +108,19 @@ static int ModulesLoaded(WPARAM, LPARAM) // Folders plugin support if (hDictionariesFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Dictionaries"), DICTIONARIES_FOLDER)) { - dictionariesFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); + dictionariesFolder = (wchar_t *)mir_alloc(sizeof(wchar_t) * MAX_PATH); FoldersGetCustomPathT(hDictionariesFolder, dictionariesFolder, MAX_PATH, L"."); } else dictionariesFolder = Utils_ReplaceVarsT(DICTIONARIES_FOLDER); if (hCustomDictionariesFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Custom Dictionaries"), CUSTOM_DICTIONARIES_FOLDER)) { - customDictionariesFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); + customDictionariesFolder = (wchar_t *)mir_alloc(sizeof(wchar_t) * MAX_PATH); FoldersGetCustomPathT(hCustomDictionariesFolder, customDictionariesFolder, MAX_PATH, L"."); } else customDictionariesFolder = Utils_ReplaceVarsT(CUSTOM_DICTIONARIES_FOLDER); if (hFlagsDllFolder = FoldersRegisterCustomPathT(LPGEN("Spell Checker"), LPGEN("Flags DLL"), FLAGS_DLL_FOLDER)) { - flagsDllFolder = (TCHAR *)mir_alloc(sizeof(TCHAR) * MAX_PATH); + flagsDllFolder = (wchar_t *)mir_alloc(sizeof(wchar_t) * MAX_PATH); FoldersGetCustomPathT(hFlagsDllFolder, flagsDllFolder, MAX_PATH, L"."); } else flagsDllFolder = Utils_ReplaceVarsT(FLAGS_DLL_FOLDER); @@ -133,21 +133,21 @@ static int ModulesLoaded(WPARAM, LPARAM) if (opts.use_flags) { // Load flags dll - TCHAR flag_file[MAX_PATH]; + wchar_t flag_file[MAX_PATH]; mir_sntprintf(flag_file, L"%s\\flags_icons.dll", flagsDllFolder); HMODULE hFlagsDll = LoadLibraryEx(flag_file, NULL, LOAD_LIBRARY_AS_DATAFILE); - TCHAR path[MAX_PATH]; + wchar_t path[MAX_PATH]; GetModuleFileName(hInst, path, MAX_PATH); SKINICONDESC sid = { 0 }; sid.flags = SIDF_ALL_TCHAR | SIDF_SORTED; - sid.section.t = LPGENT("Spell Checker") L"/" LPGENT("Flags"); + sid.section.w = LPGENW("Spell Checker") L"/" LPGENW("Flags"); // Get language flags for (int i = 0; i < languages.getCount(); i++) { Dictionary *p = languages[i]; - sid.description.t = p->full_name; + sid.description.w = p->full_name; char lang[32]; mir_snprintf(lang, "spell_lang_%d", i); @@ -159,13 +159,13 @@ static int ModulesLoaded(WPARAM, LPARAM) if (hFlag != NULL) { sid.hDefaultIcon = hFlag; - sid.defaultFile.t = NULL; + sid.defaultFile.w = NULL; sid.iDefaultIndex = 0; } else { hFlagIcoLib = IcoLib_GetIcon("spellchecker_unknown"); sid.hDefaultIcon = hFlagIcoLib; - sid.defaultFile.t = NULL; + sid.defaultFile.w = NULL; sid.iDefaultIndex = 0; } @@ -183,7 +183,7 @@ static int ModulesLoaded(WPARAM, LPARAM) for (int j = 0; j < languages.getCount(); j++) { Dictionary *dict = languages[j]; - TCHAR filename[MAX_PATH]; + wchar_t filename[MAX_PATH]; mir_sntprintf(filename, L"%s\\%s.ar", customDictionariesFolder, dict->language); dict->autoReplace = new AutoReplaceMap(filename, dict); @@ -204,7 +204,7 @@ static int ModulesLoaded(WPARAM, LPARAM) for (int i = 0; i < languages.getCount(); i++) { sid.dwId = i; - TCHAR tmp[128]; + wchar_t tmp[128]; mir_sntprintf(tmp, L"%s - %s", TranslateT("Spell Checker"), languages[i]->full_name); sid.tszTooltip = tmp; sid.hIcon = (opts.use_flags) ? IcoLib_GetIconByHandle(languages[i]->hIcolib) : IcoLib_GetIcon("spellchecker_enabled"); diff --git a/plugins/SpellChecker/src/stdafx.h b/plugins/SpellChecker/src/stdafx.h index 66e5e39f3f..ea4ea9b6bc 100644 --- a/plugins/SpellChecker/src/stdafx.h +++ b/plugins/SpellChecker/src/stdafx.h @@ -96,7 +96,7 @@ extern HBITMAP hCheckedBmp; struct WrongWordPopupMenuData { Suggestions suggestions; - TCHAR *word; + wchar_t *word; CHARRANGE pos; HMENU hMeSubMenu; HMENU hCorrectSubMenu; @@ -110,7 +110,7 @@ struct Dialog MCONTACT hContact; char name[64]; Dictionary *lang; - TCHAR lang_name[32]; + wchar_t lang_name[32]; BOOL enabled; BOOL srmm; @@ -129,11 +129,11 @@ struct Dialog }; static BOOL CenterParent(HWND hwnd); -TCHAR *lstrtrim(TCHAR *str); -BOOL lstreq(TCHAR *a, TCHAR *b, size_t len = -1); -inline BOOL IsNumber(TCHAR c) +wchar_t *lstrtrim(wchar_t *str); +BOOL lstreq(wchar_t *a, wchar_t *b, size_t len = -1); +inline BOOL IsNumber(wchar_t c) { - return c >= _T('0') && c <= _T('9'); + return c >= '0' && c <= '9'; } int MsgWindowEvent(WPARAM wParam, LPARAM lParam); @@ -151,9 +151,9 @@ INT_PTR ShowPopupMenuService(WPARAM wParam, LPARAM lParam); LRESULT CALLBACK MenuWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); void ModifyIcon(Dialog *dlg); -BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, TCHAR *text, size_t text_len, int &first_char); -TCHAR *GetWordUnderPoint(Dialog *dlg, POINT pt, CHARRANGE &sel); +BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, wchar_t *text, size_t text_len, int &first_char); +wchar_t *GetWordUnderPoint(Dialog *dlg, POINT pt, CHARRANGE &sel); -int GetClosestLanguage(TCHAR *lang_name); +int GetClosestLanguage(wchar_t *lang_name); #endif // __COMMONS_H__ diff --git a/plugins/SpellChecker/src/utils.cpp b/plugins/SpellChecker/src/utils.cpp index 7242f0c98c..7df9b00d14 100644 --- a/plugins/SpellChecker/src/utils.cpp +++ b/plugins/SpellChecker/src/utils.cpp @@ -19,7 +19,7 @@ Boston, MA 02111-1307, USA. #include "stdafx.h" -typedef void(*FoundWrongWordCallback)(TCHAR *word, CHARRANGE pos, void *param); +typedef void(*FoundWrongWordCallback)(wchar_t *word, CHARRANGE pos, void *param); typedef map DialogMapType; DialogMapType dialogs; @@ -95,20 +95,20 @@ void SetNoUnderline(Dialog *dlg) dlg->re->Start(); } -inline BOOL IsURL(TCHAR c) +inline BOOL IsURL(wchar_t c) { - return (c >= _T('a') && c <= _T('z')) - || (c >= _T('A') && c <= _T('Z')) + return (c >= 'a' && c <= 'z') + || (c >= 'A' && c <= 'Z') || IsNumber(c) - || c == _T('.') || c == _T('/') - || c == _T('\\') || c == _T('?') - || c == _T('=') || c == _T('&') - || c == _T('%') || c == _T('-') - || c == _T('_') || c == _T(':') - || c == _T('@') || c == _T('#'); + || c == '.' || c == '/' + || c == '\\' || c == '?' + || c == '=' || c == '&' + || c == '%' || c == '-' + || c == '_' || c == ':' + || c == '@' || c == '#'; } -int FindURLEnd(Dialog *dlg, TCHAR *text, int start_pos, int *checked_until = NULL) +int FindURLEnd(Dialog *dlg, wchar_t *text, int start_pos, int *checked_until = NULL) { int num_slashes = 0; int num_ats = 0; @@ -117,12 +117,12 @@ int FindURLEnd(Dialog *dlg, TCHAR *text, int start_pos, int *checked_until = NUL int i = start_pos; for (; IsURL(text[i]) || dlg->lang->isWordChar(text[i]); i++) { - TCHAR c = text[i]; - if (c == _T('\\') || c == _T('/')) + wchar_t c = text[i]; + if (c == '\\' || c == '/') num_slashes++; - else if (c == _T('.')) + else if (c == '.') num_dots++; - else if (c == _T('@')) + else if (c == '@') num_ats++; } @@ -142,7 +142,7 @@ int FindURLEnd(Dialog *dlg, TCHAR *text, int start_pos, int *checked_until = NUL } -int ReplaceWord(Dialog *dlg, CHARRANGE &sel, TCHAR *new_word) +int ReplaceWord(Dialog *dlg, CHARRANGE &sel, wchar_t *new_word) { dlg->re->Stop(); dlg->re->ResumeUndo(); @@ -161,10 +161,10 @@ public: virtual ~TextParser() {} /// @return true when finished an word - virtual bool feed(int pos, TCHAR c) = 0; + virtual bool feed(int pos, wchar_t c) = 0; virtual int getFirstCharPos() = 0; virtual void reset() = 0; - virtual void deal(const TCHAR *text, bool *mark, bool *replace, TCHAR **replacement) = 0; + virtual void deal(const wchar_t *text, bool *mark, bool *replace, wchar_t **replacement) = 0; }; class SpellParser : public TextParser @@ -185,14 +185,14 @@ public: found_real_char = FALSE; } - virtual bool feed(int pos, TCHAR c) + virtual bool feed(int pos, wchar_t c) { // Is inside a word? if (dict->isWordChar(c) || IsNumber(c)) { if (last_pos == -1) last_pos = pos; - if (c != _T('-') && !IsNumber(c)) + if (c != '-' && !IsNumber(c)) found_real_char = TRUE; return false; @@ -209,7 +209,7 @@ public: return (!found_real_char) ? -1 : last_pos; } - virtual void deal(const TCHAR *text, bool *mark, bool *replace, TCHAR **replacement) + virtual void deal(const wchar_t *text, bool *mark, bool *replace, wchar_t **replacement) { // Is it correct? if (dict->spell(text)) @@ -244,7 +244,7 @@ public: last_pos = -1; } - virtual bool feed(int pos, TCHAR c) + virtual bool feed(int pos, wchar_t c) { // Is inside a word? if (ar->isWordChar(c)) { @@ -261,7 +261,7 @@ public: return last_pos; } - virtual void deal(const TCHAR *text, bool*, bool *replace, TCHAR **replacement) + virtual void deal(const wchar_t *text, bool*, bool *replace, wchar_t **replacement) { *replacement = ar->autoReplace(text); if (*replacement != NULL) @@ -274,7 +274,7 @@ int CheckTextLine(Dialog *dlg, int line, TextParser *parser, const CHARRANGE &ignored, FoundWrongWordCallback callback, void *param) { int errors = 0; - TCHAR text[1024]; + wchar_t text[1024]; dlg->re->GetLine(line, text, _countof(text)); int len = mir_tstrlen(text); int first_char = dlg->re->GetFirstCharOfLine(line); @@ -312,7 +312,7 @@ int CheckTextLine(Dialog *dlg, int line, TextParser *parser, } } else { - TCHAR c = text[pos]; + wchar_t c = text[pos]; BOOL feed = parser->feed(pos, c); if (!feed) { @@ -356,7 +356,7 @@ int CheckTextLine(Dialog *dlg, int line, TextParser *parser, bool mark = false; bool replace = false; - TCHAR *replacement = NULL; + wchar_t *replacement = NULL; parser->deal(&text[last_pos], &mark, &replace, &replacement); if (replace) { @@ -431,12 +431,12 @@ int CheckText(Dialog *dlg, BOOL check_all, FoundWrongWordCallback callback = NUL return errors; } -void ToLocaleID(TCHAR *szKLName, size_t size) +void ToLocaleID(wchar_t *szKLName, size_t size) { - TCHAR *stopped = NULL; - USHORT langID = (USHORT)_tcstol(szKLName, &stopped, 16); + wchar_t *stopped = NULL; + USHORT langID = (USHORT)wcstol(szKLName, &stopped, 16); - TCHAR ini[32], end[32]; + wchar_t ini[32], end[32]; GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO639LANGNAME, ini, _countof(ini)); GetLocaleInfo(MAKELCID(langID, 0), LOCALE_SISO3166CTRYNAME, end, _countof(end)); @@ -445,7 +445,7 @@ void ToLocaleID(TCHAR *szKLName, size_t size) void LoadDictFromKbdl(Dialog *dlg) { - TCHAR szKLName[KL_NAMELENGTH + 1]; + wchar_t szKLName[KL_NAMELENGTH + 1]; // Use default input language HKL hkl = GetKeyboardLayout(0); @@ -500,7 +500,7 @@ LRESULT CALLBACK OwnerProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if (opts.ask_when_sending_with_error) { int errors = TimerCheck(dlg, TRUE); if (errors > 0) { - TCHAR text[500]; + wchar_t text[500]; mir_sntprintf(text, TranslateT("There are %d spelling errors. Are you sure you want to send this message?"), errors); if (MessageBox(hwnd, text, TranslateT("Spell Checker"), MB_ICONQUESTION | MB_YESNO) == IDNO) return TRUE; @@ -584,7 +584,7 @@ LRESULT CALLBACK EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; { - TCHAR c = (TCHAR)wParam; + wchar_t c = (wchar_t)wParam; BOOL deleting = (c == VK_BACK || c == VK_DELETE); // Need to do that to avoid changing the word while typing @@ -616,7 +616,7 @@ LRESULT CALLBACK EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) CHARRANGE sel = dlg->re->GetSel(); - TCHAR text[1024]; + wchar_t text[1024]; int first_char; GetWordCharRange(dlg, sel, text, _countof(text), first_char); @@ -674,7 +674,7 @@ LRESULT CALLBACK EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) return ret; } -int GetClosestLanguage(TCHAR *lang_name) +int GetClosestLanguage(wchar_t *lang_name) { int i; @@ -684,11 +684,11 @@ int GetClosestLanguage(TCHAR *lang_name) return i; // Try searching by the prefix only - TCHAR lang[128]; + wchar_t lang[128]; mir_tstrncpy(lang, lang_name, _countof(lang)); { - TCHAR *p = _tcschr(lang, _T('_')); - if (p != NULL) *p = _T('\0'); + wchar_t *p = wcschr(lang, '_'); + if (p != NULL) *p = '\0'; } // First check if there is a language that is only the prefix @@ -699,7 +699,7 @@ int GetClosestLanguage(TCHAR *lang_name) // Now try any suffix size_t len = mir_tstrlen(lang); for (i = 0; i < languages.getCount(); i++) { - TCHAR *p = _tcschr(languages[i]->language, _T('_')); + wchar_t *p = wcschr(languages[i]->language, '_'); if (p == NULL) continue; @@ -707,7 +707,7 @@ int GetClosestLanguage(TCHAR *lang_name) if (prefix_len != len) continue; - if (_tcsnicmp(languages[i]->language, lang_name, len) == 0) + if (wcsnicmp(languages[i]->language, lang_name, len) == 0) return i; } @@ -734,7 +734,7 @@ void GetUserProtoLanguageSetting(Dialog *dlg, MCONTACT hContact, char *group, ch } if (dbv.type == DBVT_TCHAR && dbv.ptszVal != NULL) { - TCHAR *lang = dbv.ptszVal; + wchar_t *lang = dbv.ptszVal; for (int i = 0; i < languages.getCount(); i++) { Dictionary *dict = languages[i]; @@ -756,18 +756,18 @@ void GetUserLanguageSetting(Dialog *dlg, char *setting) return; GetUserProtoLanguageSetting(dlg, dlg->hContact, proto, setting); - if (dlg->lang_name[0] != _T('\0')) + if (dlg->lang_name[0] != '\0') return; GetUserProtoLanguageSetting(dlg, dlg->hContact, "UserInfo", setting, FALSE); - if (dlg->lang_name[0] != _T('\0')) + if (dlg->lang_name[0] != '\0') return; // If not found and is inside meta, try to get from the meta MCONTACT hMetaContact = db_mc_getMeta(dlg->hContact); if (hMetaContact != NULL) { GetUserProtoLanguageSetting(dlg, hMetaContact, META_PROTO, setting); - if (dlg->lang_name[0] != _T('\0')) + if (dlg->lang_name[0] != '\0') return; GetUserProtoLanguageSetting(dlg, hMetaContact, "UserInfo", setting, FALSE); @@ -778,7 +778,7 @@ void GetContactLanguage(Dialog *dlg) { DBVARIANT dbv = { 0 }; - dlg->lang_name[0] = _T('\0'); + dlg->lang_name[0] = '\0'; if (dlg->hContact == NULL) { if (!db_get_ts(NULL, MODULE_NAME, dlg->name, &dbv)) { @@ -792,13 +792,13 @@ void GetContactLanguage(Dialog *dlg) db_free(&dbv); } - if (dlg->lang_name[0] == _T('\0') && !db_get_ts(dlg->hContact, "eSpeak", "TalkLanguage", &dbv)) { + if (dlg->lang_name[0] == '\0' && !db_get_ts(dlg->hContact, "eSpeak", "TalkLanguage", &dbv)) { mir_tstrncpy(dlg->lang_name, dbv.ptszVal, _countof(dlg->lang_name)); db_free(&dbv); } // Try from metacontact - if (dlg->lang_name[0] == _T('\0')) { + if (dlg->lang_name[0] == '\0') { MCONTACT hMetaContact = db_mc_getMeta(dlg->hContact); if (hMetaContact != NULL) { if (!db_get_ts(hMetaContact, MODULE_NAME, "TalkLanguage", &dbv)) { @@ -806,7 +806,7 @@ void GetContactLanguage(Dialog *dlg) db_free(&dbv); } - if (dlg->lang_name[0] == _T('\0') && !db_get_ts(hMetaContact, "eSpeak", "TalkLanguage", &dbv)) { + if (dlg->lang_name[0] == '\0' && !db_get_ts(hMetaContact, "eSpeak", "TalkLanguage", &dbv)) { mir_tstrncpy(dlg->lang_name, dbv.ptszVal, _countof(dlg->lang_name)); db_free(&dbv); } @@ -814,17 +814,17 @@ void GetContactLanguage(Dialog *dlg) } // Try to get from Language info - if (dlg->lang_name[0] == _T('\0')) + if (dlg->lang_name[0] == '\0') GetUserLanguageSetting(dlg, "Language"); - if (dlg->lang_name[0] == _T('\0')) + if (dlg->lang_name[0] == '\0') GetUserLanguageSetting(dlg, "Language1"); - if (dlg->lang_name[0] == _T('\0')) + if (dlg->lang_name[0] == '\0') GetUserLanguageSetting(dlg, "Language2"); - if (dlg->lang_name[0] == _T('\0')) + if (dlg->lang_name[0] == '\0') GetUserLanguageSetting(dlg, "Language3"); // Use default lang - if (dlg->lang_name[0] == _T('\0')) + if (dlg->lang_name[0] == '\0') mir_tstrncpy(dlg->lang_name, opts.default_language, _countof(dlg->lang_name)); } @@ -973,7 +973,7 @@ int RemoveContactTextBox(HWND hwnd) } // TODO Make this better -BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, TCHAR *text, size_t text_len, int &first_char) +BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, wchar_t *text, size_t text_len, int &first_char) { // Get line int line = dlg->re->GetLineFromChar(sel.cpMin); @@ -989,7 +989,7 @@ BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, TCHAR *text, size_t text_len, sel.cpMin--; sel.cpMin++; - while (text[sel.cpMax - first_char] != _T('\0') && (dlg->lang->isWordChar(text[sel.cpMax - first_char]) + while (text[sel.cpMax - first_char] != '\0' && (dlg->lang->isWordChar(text[sel.cpMax - first_char]) || IsNumber(text[sel.cpMax - first_char]))) sel.cpMax++; @@ -1000,12 +1000,12 @@ BOOL GetWordCharRange(Dialog *dlg, CHARRANGE &sel, TCHAR *text, size_t text_len, // See if it has only '-'s BOOL has_valid_char = FALSE; for (int i = sel.cpMin; i < sel.cpMax && !has_valid_char; i++) - has_valid_char = (text[i - first_char] != _T('-')); + has_valid_char = (text[i - first_char] != '-'); return has_valid_char; } -TCHAR *GetWordUnderPoint(Dialog *dlg, POINT pt, CHARRANGE &sel) +wchar_t *GetWordUnderPoint(Dialog *dlg, POINT pt, CHARRANGE &sel) { // Get text if (dlg->re->GetTextLength() <= 0) @@ -1015,19 +1015,19 @@ TCHAR *GetWordUnderPoint(Dialog *dlg, POINT pt, CHARRANGE &sel) sel.cpMin = sel.cpMax = dlg->re->GetCharFromPos(pt); // Get text - TCHAR text[1024]; + wchar_t text[1024]; int first_char; if (!GetWordCharRange(dlg, sel, text, _countof(text), first_char)) return NULL; // copy the word - text[sel.cpMax - first_char] = _T('\0'); - return _tcsdup(&text[sel.cpMin - first_char]); + text[sel.cpMax - first_char] = '\0'; + return wcsdup(&text[sel.cpMin - first_char]); } -void AppendSubmenu(HMENU hMenu, HMENU hSubMenu, TCHAR *name) +void AppendSubmenu(HMENU hMenu, HMENU hSubMenu, wchar_t *name) { MENUITEMINFO mii = { 0 }; mii.cbSize = sizeof(mii); @@ -1039,7 +1039,7 @@ void AppendSubmenu(HMENU hMenu, HMENU hSubMenu, TCHAR *name) InsertMenuItem(hMenu, 0, TRUE, &mii); } -void AppendMenuItem(HMENU hMenu, int id, TCHAR *name, HICON hIcon, BOOL checked) +void AppendMenuItem(HMENU hMenu, int id, wchar_t *name, HICON hIcon, BOOL checked) { ICONINFO iconInfo; GetIconInfo(hIcon, &iconInfo); @@ -1061,7 +1061,7 @@ void AppendMenuItem(HMENU hMenu, int id, TCHAR *name, HICON hIcon, BOOL checked) #define WORD_MENU_ID_BASE 100 #define AUTOREPLACE_MENU_ID_BASE 50 -void AddMenuForWord(Dialog *dlg, TCHAR *word, CHARRANGE &pos, HMENU hMenu, BOOL in_submenu, UINT base) +void AddMenuForWord(Dialog *dlg, wchar_t *word, CHARRANGE &pos, HMENU hMenu, BOOL in_submenu, UINT base) { if (dlg->wrong_words == NULL) dlg->wrong_words = new vector(1); @@ -1116,7 +1116,7 @@ void AddMenuForWord(Dialog *dlg, TCHAR *word, CHARRANGE &pos, HMENU hMenu, BOOL if (!in_submenu && opts.show_wrong_word) { InsertMenu(hMenu, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0); - TCHAR text[128]; + wchar_t text[128]; mir_sntprintf(text, TranslateT("Wrong word: %s"), word); InsertMenu(hMenu, 0, MF_BYPOSITION, 0, text); } @@ -1128,13 +1128,13 @@ struct FoundWrongWordParam int count; }; -void FoundWrongWord(TCHAR *word, CHARRANGE pos, void *param) +void FoundWrongWord(wchar_t *word, CHARRANGE pos, void *param) { FoundWrongWordParam *p = (FoundWrongWordParam*)param; p->count++; - AddMenuForWord(p->dlg, _tcsdup(word), pos, p->dlg->hWrongWordsSubMenu, TRUE, WORD_MENU_ID_BASE * p->count); + AddMenuForWord(p->dlg, wcsdup(word), pos, p->dlg->hWrongWordsSubMenu, TRUE, WORD_MENU_ID_BASE * p->count); } void AddItemsToMenu(Dialog *dlg, HMENU hMenu, POINT pt, HWND hwndOwner) @@ -1179,7 +1179,7 @@ void AddItemsToMenu(Dialog *dlg, HMENU hMenu, POINT pt, HWND hwndOwner) } else { CHARRANGE sel; - TCHAR *word = GetWordUnderPoint(dlg, pt, sel); + wchar_t *word = GetWordUnderPoint(dlg, pt, sel); if (word != NULL && !dlg->lang->spell(word)) { InsertMenu(hMenu, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0); AddMenuForWord(dlg, word, sel, hMenu, FALSE, WORD_MENU_ID_BASE); @@ -1190,8 +1190,8 @@ void AddItemsToMenu(Dialog *dlg, HMENU hMenu, POINT pt, HWND hwndOwner) static void AddWordToDictCallback(BOOL canceled, Dictionary *dict, - const TCHAR *find, const TCHAR *replace, BOOL useVariables, - const TCHAR *, void *param) + const wchar_t *find, const wchar_t *replace, BOOL useVariables, + const wchar_t *, void *param) { if (canceled) return; @@ -1549,7 +1549,7 @@ LRESULT CALLBACK MenuWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) return mir_callNextSubclass(hwnd, MenuWndProc, msg, wParam, lParam); } -TCHAR* lstrtrim(TCHAR *str) +wchar_t* lstrtrim(wchar_t *str) { int len = mir_tstrlen(str); @@ -1557,22 +1557,22 @@ TCHAR* lstrtrim(TCHAR *str) for (i = len - 1; i >= 0 && (str[i] == ' ' || str[i] == '\t'); --i); if (i < len - 1) { ++i; - str[i] = _T('\0'); + str[i] = '\0'; len = i; } for (i = 0; i < len && (str[i] == ' ' || str[i] == '\t'); ++i); if (i > 0) - memmove(str, &str[i], (len - i + 1) * sizeof(TCHAR)); + memmove(str, &str[i], (len - i + 1) * sizeof(wchar_t)); return str; } -BOOL lstreq(TCHAR *a, TCHAR *b, size_t len) +BOOL lstreq(wchar_t *a, wchar_t *b, size_t len) { - a = CharLower(_tcsdup(a)); - b = CharLower(_tcsdup(b)); - BOOL ret = len ? !_tcsncmp(a, b, len) : !mir_tstrcmp(a, b); + a = CharLower(wcsdup(a)); + b = CharLower(wcsdup(b)); + BOOL ret = len ? !wcsncmp(a, b, len) : !mir_tstrcmp(a, b); free(a); free(b); return ret; -- cgit v1.2.3