| 40 |
WikiData* wikiData; |
WikiData* wikiData; |
| 41 |
WikiList* list = new WikiList(); |
WikiList* list = new WikiList(); |
| 42 |
wxString* fileName = new wxString(); |
wxString* fileName = new wxString(); |
|
wxRegEx* regStr; |
|
|
iconv_t codeSet; |
|
|
char outbuf[MAX_BUF_SIZE]; |
|
|
const char* inbufPtr = searchStr; |
|
|
char* outbufPtr = outbuf; |
|
|
int inbufSize = strlen(searchStr); |
|
|
int outbufSize = sizeof(outbuf); |
|
| 43 |
const char* decodeFileName; |
const char* decodeFileName; |
| 44 |
|
wxCSConv eucConv(wxT(CODE_SET_EUC_JP)); |
| 45 |
|
wxCSConv sysConv(wxT(CODE_SET_SYSTEM)); |
| 46 |
|
|
|
memset(outbuf, 0, outbufSize); |
|
|
codeSet = iconv_open(CODE_SET_EUC_JP, CODE_SET_SYSTEM); |
|
|
if(codeSet == (iconv_t)-1) { |
|
|
MN_FATAL_ERROR(wxT("failed iconv_open")); |
|
|
} |
|
|
iconv(codeSet, (ICONV_CONST char**)&inbufPtr, (size_t*)&inbufSize, &outbufPtr, (size_t*)&outbufSize); |
|
|
iconv_close(codeSet); |
|
| 47 |
|
|
| 48 |
dir = new wxDir(*wikiDataDir); |
dir = new wxDir(*wikiDataDir); |
| 49 |
if ( !dir->IsOpened() ) |
if ( !dir->IsOpened() ) |
| 63 |
fread(buf, MAX_BUF_SIZE-1, 1, fp); |
fread(buf, MAX_BUF_SIZE-1, 1, fp); |
| 64 |
if(buf[0] == 0) break; |
if(buf[0] == 0) break; |
| 65 |
decodeFileName = decode(fileName->mb_str()); |
decodeFileName = decode(fileName->mb_str()); |
| 66 |
if(strstr((const char*)buf, (const char*)outbuf) || |
wxString strbuf(buf, eucConv); |
| 67 |
strstr((const char*)decodeFileName, (const char*)outbuf)) { |
wxString strSearch(searchStr, sysConv); |
| 68 |
|
wxString strDecodeFileName(decodeFileName, eucConv); |
| 69 |
|
wxRegEx regStr(strSearch, wxRE_DEFAULT|wxRE_NEWLINE|wxRE_ICASE); |
| 70 |
|
if(regStr.Matches(strbuf) || regStr.Matches(strDecodeFileName)){ |
| 71 |
wikiData = new WikiData(wikiDataDir, (const char*)fileName->mb_str(), fp); |
wikiData = new WikiData(wikiDataDir, (const char*)fileName->mb_str(), fp); |
| 72 |
list->Append(wikiData); |
list->Append(wikiData); |
| 73 |
break; |
break; |
| 78 |
cont = dir->GetNext(fileName); |
cont = dir->GetNext(fileName); |
| 79 |
} |
} |
| 80 |
delete dir; |
delete dir; |
| 81 |
|
delete fileName; |
| 82 |
|
|
| 83 |
list->Sort(compWikiData); |
list->Sort(compWikiData); |
| 84 |
return list; |
return list; |