#include <wx/stdpaths.h>\r
#include <wx/xml/xml.h>\r
#include <wx/tokenzr.h>\r
-#ifdef __WINDOWS__\r
-#include <windows.h>\r
-#endif\r
#include "cuiWrapper.h"\r
\r
//******************************************************************************\r
wxArrayString g_asOutput;\r
\r
//******************************************************************************\r
-// Entry\r
-//******************************************************************************\r
-\r
-#ifdef __WINDOWS__\r
-BOOL __stdcall DllMain(HMODULE, DWORD, void *)\r
-{\r
- return TRUE;\r
-}\r
-#endif\r
-\r
-//******************************************************************************\r
// Inside Functions\r
//******************************************************************************\r
\r
::wxSetWorkingDirectory(sz);\r
if (fp == NULL)\r
{\r
- ::wxLogError(L"Error :\n\nCommandLine:\n%s", szCommandLine.c_str());\r
+ wxLogError(L"Error :\n\nCommandLine:\n%s", szCommandLine.c_str());\r
return TPI_ERROR_U_USE_LIBRARY;\r
}\r
\r
PosInfo MakePosInfo(wxString szPrefix)\r
{\r
PosInfo pi;\r
- g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-s"), wxEmptyString).ToULong(& pi.nStart);\r
- g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-c"), wxEmptyString).ToULong(& pi.nCount);\r
- g_LibInfo.node.GetPropVal(wxT("list-") + szPrefix + wxT("-l"), wxT("0")).ToULong(& pi.nLine);\r
+ g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-s"), wxEmptyString).ToULongLong(& pi.nStart);\r
+ g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-c"), wxEmptyString).ToULongLong(& pi.nCount);\r
+ g_LibInfo.node.GetAttribute(wxT("list-") + szPrefix + wxT("-l"), wxT("0")).ToULongLong(& pi.nLine);\r
return pi;\r
}\r
\r
-wxULongLong_t GetSize(PosInfo & pi, size_t uCurrent, wxArrayString & as)\r
+wxULongLong_t GetSize(PosInfo & pi, wxULongLong_t nCurrent, wxArrayString & as)\r
{\r
if (pi.nStart == 0 && pi.nCount == 0)\r
{\r
return 0;\r
}\r
\r
- wxULongLong_t nTemp;\r
- size_t nPos = uCurrent + pi.nLine;\r
+ wxULongLong_t nTemp, nPos = nCurrent + pi.nLine;\r
wxString sz = pi.nCount == 0 ? as[nPos].Mid(pi.nStart) : as[nPos].Mid(pi.nStart, pi.nCount);\r
sz.ToULongLong(& nTemp);\r
return nTemp;\r
\r
if (xmlLibrary == NULL || xmlLibrary->GetName() != wxT("library"))\r
{\r
- // 終端に達した場合。\r
+ // データの終端に達した場合。\r
return TPI_ERROR_S_ENDOFDATA;\r
}\r
\r
MakeFormatInfo(wxT("cuiWrapper"), _fiInfo, xmlLibrary, s_nFileId++);\r
- if (myExecute(xmlLibrary->GetPropVal(wxT("name"), wxEmptyString), NULL, wxEmptyString) != TPI_ERROR_SUCCESS)\r
+ if (myExecute(xmlLibrary->GetAttribute(wxT("name"), wxEmptyString), NULL, wxEmptyString) != TPI_ERROR_SUCCESS)\r
{\r
- _fiInfo->llSupportedCommand = 0;\r
+ _fiInfo->eSupportedCommand = 0;\r
}\r
\r
return TPI_ERROR_SUCCESS;\r
// xml文法エラー。\r
return TPI_ERROR_UNDEFINED;\r
}\r
- g_LibInfo.szExeFile = xmlLibrary->GetPropVal(wxT("name"), wxEmptyString);\r
- g_LibInfo.szExeFileAlt = xmlLibrary->GetPropVal(wxT("name-alt"), wxEmptyString);\r
+ g_LibInfo.szExeFile = xmlLibrary->GetAttribute(wxT("name"), wxEmptyString);\r
+ g_LibInfo.szExeFileAlt = xmlLibrary->GetAttribute(wxT("name-alt"), wxEmptyString);\r
g_LibInfo.node = * xmlLibrary;\r
\r
return TPI_ERROR_SUCCESS;\r
for (g_LibInfo.nLibIndex = 0; g_LibInfo.nLibIndex < 300 && xmlLibrary != NULL; g_LibInfo.nLibIndex++)\r
{\r
// ライブラリをロード。\r
- g_LibInfo.szExeFile = xmlLibrary->GetPropVal(wxT("name"), wxEmptyString);\r
- g_LibInfo.szExeFileAlt = xmlLibrary->GetPropVal(wxT("name-alt"), wxEmptyString);\r
+ g_LibInfo.szExeFile = xmlLibrary->GetAttribute(wxT("name"), wxEmptyString);\r
+ g_LibInfo.szExeFileAlt = xmlLibrary->GetAttribute(wxT("name-alt"), wxEmptyString);\r
g_LibInfo.node = * xmlLibrary;\r
\r
// 書庫に対応しているかチェック。\r
)\r
{\r
wxFileName fnArchive(_szArcName);\r
- wxArrayString asExt = ::wxStringTokenize(g_LibInfo.node.GetPropVal(wxT("suffix"), wxEmptyString), wxT(";"));\r
- if (! g_LibInfo.node.HasProp(wxT("list")))\r
+ wxArrayString asExt = ::wxStringTokenize(g_LibInfo.node.GetAttribute(wxT("suffix"), wxEmptyString), wxT(";"));\r
+ if (! g_LibInfo.node.HasAttribute(wxT("list")))\r
{\r
return TPI_ERROR_ARC_UNSUPPORTED;\r
}\r
if (g_szCurrentArchive != _szArcName)\r
{\r
wxString szOutput;\r
- if (myExecute(g_LibInfo.szExeFile + wxT(" ") + MakeCommandLineSend(g_LibInfo.node.GetPropVal(wxT("list"), wxEmptyString), _szArcName, NULL, NULL, wxEmptyString), & szOutput, wxEmptyString) != TPI_ERROR_SUCCESS)\r
+ wxArrayString as;\r
+ if (myExecute(g_LibInfo.szExeFile + wxT(" ") + MakeCommandLineSend(g_LibInfo.node.GetAttribute(wxT("list"), wxEmptyString), _szArcName, NULL, as, wxEmptyString), & szOutput, wxEmptyString) != TPI_ERROR_SUCCESS)\r
{\r
return TPI_ERROR_U_USE_LIBRARY;\r
}\r
if (_bFirst)\r
{\r
s_nFileId = 0;\r
- wxString szStartLine = g_LibInfo.node.GetPropVal(wxT("list-line-s"), wxEmptyString);\r
+ wxString szStartLine = g_LibInfo.node.GetAttribute(wxT("list-line-s"), wxEmptyString);\r
if (! szStartLine.IsEmpty())\r
{\r
// 開始行の次の行にセット。\r
}\r
\r
// 初期設定。\r
- g_LibInfo.node.GetPropVal(wxT("list-line-c"), wxT("1")).ToULongLong(& nProcessPerLine);\r
- szEndLine = g_LibInfo.node.GetPropVal(wxT("list-line-e"), szStartLine);\r
- szDateFormat = g_LibInfo.node.GetPropVal(wxT("list-date-f"), wxDefaultDateTimeFormat);\r
+ g_LibInfo.node.GetAttribute(wxT("list-line-c"), wxT("1")).ToULongLong(& nProcessPerLine);\r
+ szEndLine = g_LibInfo.node.GetAttribute(wxT("list-line-e"), szStartLine);\r
+ szDateFormat = g_LibInfo.node.GetAttribute(wxT("list-date-f"), wxDefaultDateTimeFormat);\r
piFName = MakePosInfo(wxT("fname"));\r
piPSize = MakePosInfo(wxT("psize"));\r
piUSize = MakePosInfo(wxT("usize"));\r
if (s_nCurrentLine >= asOutput.GetCount())\r
{\r
// 空行で終わるとき以外はエラーとする。\r
- return szEndLine == wxEmptyString ? TPI_ERROR_S_ENDOFDATA : TPI_ERROR_ARC_UNSUPPORTED;\r
+ return szEndLine.IsEmpty() ? TPI_ERROR_S_ENDOFDATA : TPI_ERROR_ARC_UNSUPPORTED;\r
}\r
\r
// 最終行かどうか確認。\r
_fiInfo->fnFileName = wxFileName::wxFileName(_fiInfo->szStoredName);\r
\r
// サイズ取得。\r
- _fiInfo->llPackedSize = GetSize(piPSize, s_nCurrentLine, asOutput);\r
- _fiInfo->llUnpackedSize = GetSize(piUSize, s_nCurrentLine, asOutput);\r
+ _fiInfo->nPackedSize = GetSize(piPSize, s_nCurrentLine, asOutput);\r
+ _fiInfo->nUnpackedSize = GetSize(piUSize, s_nCurrentLine, asOutput);\r
\r
// 更新時刻取得。\r
if (piDate.nStart != 0 || piDate.nCount != 0)\r
}\r
\r
// 最後に次の行へ進めておく。\r
- _fiInfo->llFileId = s_nFileId++;\r
+ _fiInfo->nFileId = s_nFileId++;\r
s_nCurrentLine += nProcessPerLine;\r
\r
return TPI_ERROR_SUCCESS;\r
\r
int __stdcall Command\r
(\r
- unsigned int _uCommand,\r
+ wxULongLong_t _eCommand,\r
TPI_SWITCHES * _swInfo,\r
const wxString & _szArcName,\r
const wxArrayString & _szFiles\r
wxString szPath, szCommandLine;\r
\r
// APIアドレス取得。\r
- if (! g_LibInfo.node.GetPropVal(\r
- _uCommand == TPI_COMMAND_CREATE ? wxT("create") :\r
- _uCommand == TPI_COMMAND_ADD ? wxT("add") :\r
- _uCommand == TPI_COMMAND_EXTRACT ? wxT("extract") : \r
- _uCommand == TPI_COMMAND_DELETE ? wxT("delete") : \r
- _uCommand == TPI_COMMAND_UPDATE ? wxT("update") : \r
- _uCommand == TPI_COMMAND_TEST ? wxT("test") : \r
- _uCommand == TPI_COMMAND_REPAIR ? wxT("repair") : \r
- _uCommand == TPI_COMMAND_MOVE ? wxT("move") : \r
- _uCommand == TPI_COMMAND_SFX ? wxT("sfx") : \r
- _uCommand == TPI_COMMAND_UNSFX ? wxT("unsfx") : wxEmptyString, & szCommandLine))\r
+ if (! g_LibInfo.node.GetAttribute(\r
+ _eCommand == TPI_COMMAND_CREATE ? wxT("create") :\r
+ _eCommand == TPI_COMMAND_ADD ? wxT("add") :\r
+ _eCommand == TPI_COMMAND_EXTRACT ? wxT("extract") : \r
+ _eCommand == TPI_COMMAND_DELETE ? wxT("delete") : \r
+ _eCommand == TPI_COMMAND_UPDATE ? wxT("update") : \r
+ _eCommand == TPI_COMMAND_TEST ? wxT("test") : \r
+ _eCommand == TPI_COMMAND_REPAIR ? wxT("repair") : \r
+ _eCommand == TPI_COMMAND_MOVE ? wxT("move") : \r
+ _eCommand == TPI_COMMAND_SFX ? wxT("sfx") : \r
+ _eCommand == TPI_COMMAND_UNSFX ? wxT("unsfx") : wxEmptyString, & szCommandLine))\r
{\r
- g_LibInfo.node.GetPropVal(\r
- _uCommand == TPI_COMMAND_CREATE ? wxT("create-alt") :\r
- _uCommand == TPI_COMMAND_ADD ? wxT("add-alt") :\r
- _uCommand == TPI_COMMAND_EXTRACT ? wxT("extract-alt") : \r
- _uCommand == TPI_COMMAND_DELETE ? wxT("delete-alt") : \r
- _uCommand == TPI_COMMAND_UPDATE ? wxT("update-alt") : \r
- _uCommand == TPI_COMMAND_TEST ? wxT("test-alt") : \r
- _uCommand == TPI_COMMAND_REPAIR ? wxT("repair-alt") : \r
- _uCommand == TPI_COMMAND_MOVE ? wxT("move-alt") : \r
- _uCommand == TPI_COMMAND_SFX ? wxT("sfx-alt") : \r
- _uCommand == TPI_COMMAND_UNSFX ? wxT("unsfx-alt") : wxEmptyString, & szCommandLine);\r
+ g_LibInfo.node.GetAttribute(\r
+ _eCommand == TPI_COMMAND_CREATE ? wxT("create-alt") :\r
+ _eCommand == TPI_COMMAND_ADD ? wxT("add-alt") :\r
+ _eCommand == TPI_COMMAND_EXTRACT ? wxT("extract-alt") : \r
+ _eCommand == TPI_COMMAND_DELETE ? wxT("delete-alt") : \r
+ _eCommand == TPI_COMMAND_UPDATE ? wxT("update-alt") : \r
+ _eCommand == TPI_COMMAND_TEST ? wxT("test-alt") : \r
+ _eCommand == TPI_COMMAND_REPAIR ? wxT("repair-alt") : \r
+ _eCommand == TPI_COMMAND_MOVE ? wxT("move-alt") : \r
+ _eCommand == TPI_COMMAND_SFX ? wxT("sfx-alt") : \r
+ _eCommand == TPI_COMMAND_UNSFX ? wxT("unsfx-alt") : wxEmptyString, & szCommandLine);\r
}\r
\r
if (szCommandLine.IsEmpty())\r
\r
// コマンドライン・レスポンスファイル作成。\r
wxString\r
- szResponceFileName = MakeResponceFile(_szFiles, g_LibInfo.node.GetPropVal(wxT("quote-resp"), wxT("1")) == wxT("1")),\r
+ szResponceFileName = MakeResponceFile(_szFiles, g_LibInfo.node.GetAttribute(wxT("quote-resp"), wxT("1")) == wxT("1")),\r
szCommandLineSend = MakeCommandLineSend(szCommandLine, _szArcName, _swInfo, _szFiles, szResponceFileName);\r
\r
// コマンドライン実行。\r
\r
if (nErrorCode != TPI_ERROR_SUCCESS)\r
{\r
- ::wxLogError(L"Error :\n%x\n\nCommandLine:\n%s\n\nOutput:\n%s", nErrorCode, szCommandLineSend.c_str(), szOutput.c_str());\r
+ wxLogError(L"Error :\n%x\n\nCommandLine:\n%s\n\nOutput:\n%s", nErrorCode, szCommandLineSend.c_str(), szOutput.c_str());\r
}\r
return nErrorCode;\r
}\r