Added .gitignore info for Windows build files.
[jben.git] / jutils.cpp
blob1f77a533142ae1bdb423041b4b13c25e3b3053b7
1 /*
2 Project: J-Ben
3 Author: Paul Goins
4 Website: http://www.vultaire.net/software/jben/
5 License: GNU General Public License (GPL) version 2
6 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
8 File: jutils.cpp
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>
24 #include "jutils.h"
26 wxCSConv transcoder(_T("utf8"));
28 bool IsFurigana(wxChar c) {
29 if(IsHiragana(c) || IsKatakana(c)) return true;
30 return false;
33 bool IsHiragana(wxChar c) {
34 int i = (int) c;
35 if(i >= 0x3041 && i <= 0x3096) return true;
36 return false;
39 bool IsKatakana(wxChar c) {
40 int i = (int) c;
41 if(i >= 0x30A1 && i <= 0x30FA) return true;
42 return false;
45 bool UTF8ToWx(const string& utfStr, wxString& wxStr) {
46 int srcLength = utfStr.length();
47 int destLength = (srcLength+1) * sizeof(wxChar);
49 transcoder.MB2WC(
50 wxStr.GetWriteBuf(destLength),
51 utfStr.c_str(), destLength);
52 wxStr.UngetWriteBuf();
54 /* This will be a performance hit if used, I think. But I'll leave it
55 in as a comment for possible future memory savings. */
56 /*wxStr.Shrink();*/
57 return true;
60 bool WxToUTF8(const wxString& wxStr, string& utfStr) {
61 /* UTF8 can take up to 4 bytes for each single UNICODE character.
62 So, instead of sizeof(wxChar) or similar, we just use a hard-coded
63 "3". */
64 int srcLength = wxStr.length();
65 int destLength = (srcLength+1) * 4;
66 char *temp = new char[destLength];
68 transcoder.WC2MB(temp, wxStr.c_str(), destLength);
70 utfStr = temp;
71 delete[] temp;
72 return true;