GError GPlugLoader::LoadFilePlug(const GChar8 *FullLibraryName) { GPlugHandle handle = NULL; // we don't wanna a null filename if (!FullLibraryName) return G_INVALID_PARAMETER; // unplug current library UnloadPlug(); #if defined(G_OS_WIN) && !defined(__CYGWIN__) handle = LoadLibraryA(FullLibraryName); #elif defined(G_OS_HPUX) // BIND_FIRST is necessary for some reason handle = shl_load(FullLibraryName, BIND_DEFERRED | BIND_FIRST | BIND_VERBOSE, 0); // other Unix (it works also on MacOSX and Tiger) #else handle = dlopen(FullLibraryName, RTLD_LAZY | RTLD_GLOBAL); // dlopen will not work with files in the current directory unless // they are prefaced with './' (DB - Nov 5, 2003). // So we must check if file was expressed as a local file (without path) GString fPath = StrUtils::ExtractFilePath(FullLibraryName); if ((!handle) && (fPath.length() <= 0)) { GString localLibraryName = GString("./") + GString(FullLibraryName); handle = dlopen(StrUtils::ToAscii(localLibraryName), RTLD_LAZY | RTLD_GLOBAL); } #endif if (!handle) return G_INVALID_FORMAT; gPlugHandle = handle; return G_NO_ERROR; }
void GServerInfoWindow::Update(const GListedServer & in_Server) { m_pObjServerNameTxt->Text(in_Server.m_sServerName); m_pObjIpAddressTxt ->Text(GString(inet_ntoa(((SOCKADDR_IN*)&in_Server.m_ServerAdress)->sin_addr))); m_pObjPlayersTxt ->Text(GString(in_Server.m_iNbPlayers) + L"/" + GString(in_Server.m_iMaxPlayers)); m_pObjModsTxt ->Text(in_Server.m_sModName); m_pObjScenarioTxt ->Text(in_Server.m_sScenarioName); m_pObjPasswordCbo ->ToggleState(in_Server.m_bHasPassword); }
int getIndexForKeytype(const char* key) { for (int i = 0; i < sizeof KeytypeNames / sizeof(char*); i++) { GString lowkey = GString(key); Utility::ToLower(lowkey); GString lowname = GString(KeytypeNames[i]); Utility::ToLower(lowname); if (lowkey == lowname) return i; } return -1; }
bool GEconomicHealthWindow::OnCreate() { __super::OnCreate(); m_pObjInnerFrame = (GUI::GFrame*)Child(L"frmInner"); m_pObjGdpTotal = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"txtTotal"); m_pObjGdpPerCapita = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"txtCapita"); m_pObjUnemploymentTxt = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"txtUnemployment"); m_pObjPovertyTxt = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"txtPoverty"); m_pObjUnemploymentMtr = (SP2::GCursorMeter*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"frmUnemployment"); m_pObjPovertyMtr = (SP2::GCursorMeter*)m_pObjInnerFrame->Child(L"frmPopulation")->Child(L"frmPoverty"); m_pObjPersonalIncomeTax = (GEditBoxNumeric*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"frmTax")->Child(L"edtText"); m_pObjInflationValue = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"txtInflation"); m_pObjInflationGrowth = (GUI::GLabel*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"txtInflationVar"); m_pObjDelimiter = (GUI::GPictureBox*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"picDelimiter"); m_pObjInterestLevel = (GEditBoxNumeric*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"frmInterest")->Child(L"edtText"); m_pObjPersonalIncomeTaxVal = (SP2::GUpdatableValue*)m_pObjInnerFrame->Child(L"frmGdp")->Child(L"frmTax"); m_pObjInterestLevelVal = (SP2::GUpdatableValue*)m_pObjInnerFrame->Child(L"frmInflation")->Child(L"frmInterest"); m_pObjPersonalIncomeTaxVal->TextValueObj()->TextOffset(0,0); m_pObjInterestLevelVal->TextValueObj()->TextOffset(0,0); m_pObjPersonalIncomeTaxVal->TextValueObj()->TextAlignment(L"MiddleCenter"); m_pObjInterestLevelVal->TextValueObj()->TextAlignment(L"MiddleCenter"); m_pObjDelimiter->BringToFront(); vector<UINT32> l_viStep; l_viStep.push_back(1); l_viStep.push_back(10); vector<REAL64> l_vfStep; l_vfStep.push_back(0.1f); l_vfStep.push_back(1.0f); m_pObjPersonalIncomeTaxVal->Initialize(l_viStep, l_vfStep, L"", L" %",1,0, SP2::PersonalTaxes_LowerCap * 100, SP2::PersonalTaxes_UpperCap * 100); m_pObjInterestLevelVal->Initialize(l_viStep, l_vfStep, L"", L" %",1,0, SP2::InterestRate_LowerCap * 100, SP2::InterestRate_UpperCap * 100); m_pObjUnemploymentMtr->MeterBtn()[0]->PictureNormal(GString(SP2::PIC_GRADIENT_RED)); m_pObjPovertyMtr->MeterBtn()[0]->PictureNormal(GString(SP2::PIC_GRADIENT_RED)); if(Visible()) Update(); return true; }
bool SP2::Event::GHdmSetPlayerInfo::Unserialize(GOBuffer& io_Buffer) { GDZLOG(EDZLogLevel::Entry, L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining())); bool l_bReturn = false; if(__super::Unserialize(io_Buffer) && io_Buffer.Remaining() >= sizeof(UINT32)) { GDZLOG(EDZLogLevel::Info1, L"m_PlayerInfo.ClientID = " + GString(m_PlayerInfo.ClientID) + L", m_PlayerInfo.CountryID = " + GString(m_PlayerInfo.CountryID) + L", m_PlayerInfo.PartyID = " + GString(m_PlayerInfo.PartyID) + L", m_PlayerInfo.PlayerName = " + GString(m_PlayerInfo.PlayerName) + L", m_PlayerInfo.PlayerStatus = " + GString(m_PlayerInfo.PlayerStatus) + L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining())); io_Buffer >> m_iPassword; GDZLOG(EDZLogLevel::Info1, L"io_Buffer.Remaining() = " + GString(io_Buffer.Remaining()) + L", m_iPassword = " + GDZDebug::FormatHex(m_iPassword)); l_bReturn = true; }
GString GString::Mid (int nFirst, int nCnt) const { if (nFirst > _len) nFirst = _len; return GString(&_str[nFirst], nCnt); }
GString Sprite::GetImageFilename() const { if (mImage) return mImage->fname; else return GString(); }
void GHttp::Post(const GString &p, const GString &tab) { GString page(p); GString message(tab); if (!page.StartWith("http://")) { page = this->_host + page; if (!page.StartWith("http://")) page = "http://" + page; } GString chaine; chaine = "POST " + page + " HTTP/1.1\r\n"; chaine += "Host: " + this->_host + "\r\n"; if (!this->_proxyUser.IsEmpty()) { chaine += "Proxy-Authorization: Basic " + GCryptography::GBase64::Encode(this->_proxyUser + ":" + this->_proxyPass) + "\r\n"; chaine += "Proxy-Connection : keep-alive\r\n"; } if (!this->_user.IsEmpty()) chaine += "Authorization: Basic " + GCryptography::GBase64::Encode(this->_user + ":" + this->_pass) + "\r\n"; chaine += "Content-Type: application/x-www-form-urlencoded\r\n"; chaine += "Content-Length: " + GString(message.Size()) + "\r\n"; chaine += "\r\n"; chaine += message + "\r\n"; chaine += "\r\n"; this->_socket.Send(chaine); }
GString GString::Left (int nCnt) const { if (nCnt > _len) nCnt = _len; return GString(_str, nCnt); }
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); MSG msg; szTitle = GString(IDS_APP_TITLE); szWindowClass = GString(IDC_LAUNCHBROWSER); OptionsKeyName = Format(TEXT("Software\\%s"), szTitle.c_str()); // if it's running already, pop the options dialog HWND existingWindow = FindWindow(szWindowClass.c_str(), szTitle.c_str()); if(existingWindow != NULL) { SendNotifyMessage(existingWindow, WM_COMMAND, ID_FILE_OPTIONS, 0); return FALSE; } RegisterWindowClass(hInstance); if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } Browser::ScanRegistryForBrowsers(); SearchEngine::InitSearchEngines(); MouseDoubleClickTime = GetDoubleClickTime() / 1000.0; hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, fnKeyboardHook, hInstance, 0); if(LoadOptionsFromRegistry() == FALSE) { PostMessage(hMainWindow, WMU_POP_OPTIONS_DIALOG, 0, 0); } // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) msg.wParam; }
GString GString::Right(int nCnt) const { if (nCnt > _len) nCnt = _len + 1; int nFirst = _len - nCnt; return GString(&_str[nFirst]); }
BOOL LoadOptionsFromRegistry() { RegKey options(HKEY_CURRENT_USER, OptionsKeyName, KEY_READ|KEY_CREATE_SUB_KEY|KEY_SET_VALUE); DWORD optionsSet; if(!(options.GetDWORDValue(GString(IDS_KEYNAME_OPTIONSSET), optionsSet) && optionsSet == 1)) { return FALSE; } wstring browserName; if(options.GetStringValue(GString(IDS_KEYNAME_BROWSER), browserName)) { int currentBrowserIndex = Browser::Find(browserName); if(currentBrowserIndex != -1) { Browser::SetCurrent(currentBrowserIndex); wstring commandLine; options.GetStringValue(GString(IDS_KEYNAME_BROWSEROPTIONS), commandLine); Browser::GetCurrent().SetCommandLine(commandLine); } } else { Browser::SetCurrent(0); } wstring searchName; if(options.GetStringValue(GString(IDS_KEYNAME_SEARCHENGINE), searchName)) { int currentIndex = 0; for(auto s : SearchEngine::All()) { if(searchName.compare(s.Name()) == 0) { SearchEngine::SetCurrent(currentIndex); break; } ++currentIndex; } wstring formatString; options.GetStringValue(GString(IDS_KEYNAME_SEARCHFORMAT), formatString); SearchEngine::GetCurrent().SetFormatString(formatString); } return TRUE; }
vector<GString> TokenSplit(const GString& str, const GString &token, bool compress) { vector<GString> ret; size_t len = str.length(); auto it = &str[0]; auto next = strpbrk(str.c_str(), token.c_str()); // next token instance for (; next != nullptr; next = strpbrk(it, token.c_str())) { if (!compress || it - next != 0) ret.push_back(GString(it, next)); it = next + 1; } if (it != next && len) ret.push_back(GString(it, &str[len])); return ret; }
bool GSqlDatabase::DropDatabase(const GString &Name) { char *req = GString("DROP DATABASE IF EXISTS " + Name).ToChar(); int res = mysql_query(&(this->_mysql), req); delete[] req; if (res) return (false); return (true); }
bool GSqlDatabase::CreateDatabase(const GString &Name) { char *req = GString("CREATE DATABASE " + Name).ToChar(); int res = mysql_query(&(this->_mysql), req); delete[] req; if (res) return (false); return (true); }
GString SJIStoU8 (GString Line) { #ifdef WIN32 wchar_t u16s[MAX_STRING_SIZE]; char mbs[MAX_STRING_SIZE]; size_t len = MultiByteToWideChar(932, 0, Line.c_str(), Line.length(), u16s, MAX_STRING_SIZE); len = WideCharToMultiByte(CP_UTF8, 0, u16s, len, mbs, MAX_STRING_SIZE, NULL, NULL); mbs[len] = 0; return GString(mbs); #elif defined(DARWIN) // Note: for OS X/Darwin/More than likely most BSD variants, iconv behaves a bit differently. iconv_t conv; char buf[MAX_STRING_SIZE]; char* out = buf; size_t srcLength = Line.length(); size_t dstLength = MAX_STRING_SIZE; const char* in = Line.c_str(); conv = iconv_open("UTF-8", "SHIFT_JIS"); iconv(conv, (char**)&in, &srcLength, (char**)&out, &dstLength); iconv_close(conv); // We have to use buf instead of out here. For whatever reason, iconv on Darwin doesn't get us what we would expect if we just use out. return GString(buf); #else char buf[MAX_STRING_SIZE]; iconv_t conv; char** out = &buf; const char* in = Line.c_str(); size_t BytesLeftSrc = Line.length(); size_t BytesLeftDst = MAX_STRING_SIZE; conv = iconv_open("UTF-8", "SHIFT_JIS"); bool success = (iconv(conv, (char **)&in, &BytesLeftSrc, out, &BytesLeftDst) > -1); iconv_close(conv); if (success) return GString(*out); else { Log::Printf("Failure converting character sets."); return GString(); } #endif }
void ShowContextMenu(HWND hWnd) { MENUITEMINFO separatorBtn = {0}; separatorBtn.cbSize = sizeof(MENUITEMINFO); separatorBtn.fMask = MIIM_FTYPE; separatorBtn.fType = MFT_SEPARATOR; HMENU hMenu = CreatePopupMenu(); if(hMenu != NULL) { InsertMenu(hMenu, -1, MF_BYPOSITION, ID_FILE_OPTIONS, GString(IDS_MENU_OPTIONS).c_str()); InsertMenuItem(hMenu, -1, FALSE, &separatorBtn); InsertMenu(hMenu, -1, MF_BYPOSITION, IDM_EXIT, GString(IDS_MENU_EXIT).c_str()); POINT pt; GetCursorPos(&pt); SetForegroundWindow(hWnd); TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hWnd, NULL); DestroyMenu(hMenu); PostMessage(hWnd, WM_NULL, 0, 0); } }
bool SP2::Event::GHdmSetPlayerInfo::Serialize(GIBuffer& io_Buffer) const { GDZLOG(EDZLogLevel::Entry, L"io_Buffer.Size() = " + GString(io_Buffer.Size())); GDZLOG(EDZLogLevel::Info1, "m_PlayerInfo.ClientID = " + GString(m_PlayerInfo.ClientID) + L", m_PlayerInfo.CountryID = " + GString(m_PlayerInfo.CountryID) + L", m_PlayerInfo.PartyID = " + GString(m_PlayerInfo.PartyID) + L", m_PlayerInfo.PlayerName = " + GString(m_PlayerInfo.PlayerName) + L", m_PlayerInfo.PlayerStatus = " + GString(m_PlayerInfo.PlayerStatus)); bool l_bReturn = false; if(__super::Serialize(io_Buffer)) { GDZLOG(EDZLogLevel::Info1, L"io_Buffer.Size() = " + GString(io_Buffer.Size()) + L", m_iPassword = "******"io_Buffer.Size() = " + GString(io_Buffer.Size())); l_bReturn = true; } GDZLOG(EDZLogLevel::Exit, L"Returning " + GString(l_bReturn)); return l_bReturn; }
GString Narrow(std::wstring Line) { char mbs[2048]; #ifndef WIN32 wcstombs(mbs, Line.c_str(), 2048); #else memset(mbs, 0, 2048); size_t len = WideCharToMultiByte(CP_UTF8, 0, Line.c_str(), Line.length(), mbs, 2048, NULL, NULL); #endif return GString(mbs); }
void SaveOptionsToRegistry(HWND dlg) { WCHAR buffer[16384]; HWND searchCombo = GetDlgItem(dlg, IDC_COMBO_SEARCHENGINE); SearchEngine::SetCurrent(ComboBox_GetCurSel(searchCombo)); GetDlgItemText(dlg, IDC_EDIT_SEARCHENGINEFORMAT, buffer, ARRAYSIZE(buffer)); SearchEngine::GetCurrent().SetFormatString(buffer); HWND browserCombo = GetDlgItem(dlg, IDC_COMBO_BROWSERCHOICE); Browser::SetCurrent(ComboBox_GetCurSel(browserCombo)); GetDlgItemText(dlg, IDC_EDIT_BROWSERPARAMETERS, buffer, ARRAYSIZE(buffer)); Browser::GetCurrent().SetCommandLine(buffer); RegKey r(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), KEY_READ|KEY_SET_VALUE); if(IsDlgButtonChecked(dlg, IDC_CHECK_RUN_AT_STARTUP)) { r.SetStringValue(szTitle, GetExecutableFilename()); } else { r.DeleteValue(szTitle); } RegKey options; options.Create(HKEY_CURRENT_USER, OptionsKeyName, KEY_READ|KEY_CREATE_SUB_KEY|KEY_SET_VALUE); options.SetDWORDValue(GString(IDS_KEYNAME_OPTIONSSET), 1); options.SetStringValue(GString(IDS_KEYNAME_BROWSER), Browser::GetCurrent().Name()); options.SetStringValue(GString(IDS_KEYNAME_BROWSEROPTIONS), Browser::GetCurrent().CommandLine()); options.SetStringValue(GString(IDS_KEYNAME_BROWSER_EXECUTABLE), Browser::GetCurrent().ExecutableFilename()); options.SetStringValue(GString(IDS_KEYNAME_SEARCHENGINE), SearchEngine::GetCurrent().Name()); options.SetStringValue(GString(IDS_KEYNAME_SEARCHFORMAT), SearchEngine::GetCurrent().FormatString()); }
GString GJsonPair::ToString() const { if (!Valid()) { return GString(); } GString jsonPair = "\""; jsonPair += m_sKey; jsonPair += "\":"; jsonPair += m_pValue->ToString(); return jsonPair; }
GString GLDMaskWidget::nextStyleSheet(GLDGuideInfo &guideInfo) { return GString("QPushButton#m_pGuideNextButton" "{" "border-image: url(" + guideInfo.m_nextButtonItem.m_normalImage + ");" "}" "QPushButton#m_pGuideNextButton:hover" "{" "border-image: url(" + guideInfo.m_nextButtonItem.m_hoverImage + ");" "}" "QPushButton#m_pGuideNextButton:pressed" "{" "border-image: url(" + guideInfo.m_nextButtonItem.m_pressedImage + ");" "}"); }
void SetupNotificationIcon(HWND hWnd) { ZeroMemory(&niData, sizeof(NOTIFYICONDATA)); niData.cbSize = sizeof(NOTIFYICONDATA); niData.uID = 1; niData.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; niData.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_LAUNCHBROWSER), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); niData.hWnd = hWnd; niData.uCallbackMessage = WM_APP; wcscpy_s(niData.szTip, ARRAYSIZE(niData.szTip)-1, (szTitle + GString(IDS_BALLOON)).c_str()); niData.uTimeout = 15000; niData.uVersion = NOTIFYICON_VERSION; Shell_NotifyIcon(NIM_ADD, &niData); Shell_NotifyIcon(NIM_SETVERSION, &niData); }
GString GLDMaskWidget::maskStyleSheet(GLDGuideInfo &guideInfo) { return GString("QLabel#m_pMaskTitle" "{" "border-image: url(" + guideInfo.m_maskWidgetItem.m_normalImage + ");" "}" "QLabel#m_pMaskTitle:hover" "{" "border-image: url(" + guideInfo.m_maskWidgetItem.m_hoverImage + ");" "}" "QLabel#m_pMaskTitle:pressed" "{" "border-image: url(" + guideInfo.m_maskWidgetItem.m_pressedImage + ");" "}"); }
GString GSocketUdpServer::Receive(void) { #if defined (GWIN) int ret; int len = sizeof(this->_sockaddr); DWORD dwBytesRet, dwFlags; char buffer[1024]; WSABUF wbuf; wbuf.len = 1024; wbuf.buf = buffer; dwFlags = 0; ret = WSARecvFrom(this->_socket, &wbuf, 1, &dwBytesRet, &dwFlags, reinterpret_cast <sockaddr*> (&this->_sockaddr), &len, NULL, NULL); if (ret == SOCKET_ERROR) return (GString()); return (GString::GetBuffer(wbuf.buf, dwBytesRet)); #else char buffer[1024]; int li = 0; li = recvfrom(this->_socket, buffer, sizeof(buffer), 0, 0, 0); if (li <= 0) return (GString("")); return (GString::GetBuffer(buffer, li)); #endif }
GString GFileInfos::FormatedSize(unsigned int num) const { long long size(this->Size()); GStringList name; name.PushBack("k"); name.PushBack("M"); name.PushBack("G"); unsigned int j = 0; long long newsize(size / 1024); if (newsize == 0) return ("1.0"); while (newsize > 1024) { newsize /= 1024; j++; } return (GString(newsize, num) + name[j]); }
bool EHE_Action_Lower_Tax::Execute(INT32 in_source, INT32 in_target, INT32 in_intensity) { REAL64 l_fIncomeTax = 0; GRSetSPtr l_pOutRecordSet(new GRecordSet()); g_ServerDAL.DatabaseExecuteQuery(L"SELECT personal_income_tax FROM country WHERE id = " + GString(in_source),(GRSetSPtr)NULL,l_pOutRecordSet); if( (l_pOutRecordSet.get() ) && (l_pOutRecordSet.get()->Record(0)->Field(0)->Data() ) ) { l_fIncomeTax = *((REAL64*)l_pOutRecordSet.get()->Record(0)->Field(0)->Data()); if(l_fIncomeTax > 3.0f) l_fIncomeTax -= 1.0f; g_ServerDAL.DBUpdateDomesticPolicies((INT16)in_source,&l_fIncomeTax); } else return false; //On close button called we must create an event to adjust the income tax if it has changed GGameEventSPtr l_GEAdjustTax = g_Joshua.CreateGameEvent(SP2::ADJUST_INCOME_TAX); l_GEAdjustTax->m_from = in_source; l_GEAdjustTax->m_target = 0; SP2::Event::GAdjustIncomeTax* l_pAdjustTax = (SP2::Event::GAdjustIncomeTax*)l_GEAdjustTax.get(); l_pAdjustTax->IncomeTaxRate(l_fIncomeTax); g_Joshua.RaiseEvent(l_GEAdjustTax); g_Joshua.Log(L"Lowering taxes for " + GString(in_source),MSGTYPE_MSG); //Get the country capital and the coordinates for the flag to be placed on earth INT32 l_iCapitalID = g_ServerDAL.Capitals()[in_source-1].second; SP2::GCity l_City = g_ServerDAL.Cities()[l_iCapitalID-1]; //Notify the client GGameEventSPtr l_GENotifyClient = g_Joshua.CreateGameEvent(SP2::NOTIFY_CLIENT); l_GENotifyClient->m_from = 0; SP2::Event::GNotifyClient* l_pNotify = (SP2::Event::GNotifyClient*)l_GENotifyClient.get(); l_pNotify->Set((REAL32)l_City.m_iY,(REAL32)l_City.m_iX,0,in_source,l_City.m_sName + ": lowering taxes"); for(INT32 i = 0 ; i < (INT32)g_SP2Server->HumanPlayers().size() ; i++) { l_GENotifyClient->m_target =g_SP2Server->HumanPlayers()[i]; g_Joshua.RaiseEvent(l_GENotifyClient); } return true; }
GString Format(GString str, ...) { char r[1024]; int bfsize; va_list vl; va_start(vl,str); bfsize = vsnprintf(r, 1024, str.c_str(), vl); if (bfsize < 0) { Utility::DebugBreak(); va_end(vl); return ""; } vector<char> fmt(bfsize + 1); vsnprintf(&fmt[0], bfsize, str.c_str(), vl); va_end(vl); return GString(fmt.data()); }
int KeyTranslate(GString K) { for (uint32 i = 0; i < SpecialKeys.size(); i++) { GString Key = K; Utility::ToLower(Key); GString Target = GString(SpecialKeys.at(i).KeyString); Utility::ToLower(Target); if (Key == Target) return SpecialKeys.at(i).boundkey; } if (K.length()) { if (Utility::IsNumeric(K.c_str())) return atoi(K.c_str()); else return (int)K[0]; } else return 0; }
GString GetSha256ForFile(GString Filename) { SHA256 SHA; #ifndef WIN32 std::ifstream InStream(Filename.c_str()); #else std::ifstream InStream(Utility::Widen(Filename).c_str()); #endif unsigned char tmpbuf[256]; if (!InStream.is_open()) return ""; while (!InStream.eof()) { InStream.read((char*)tmpbuf, 256); size_t cnt = InStream.gcount(); SHA.add(tmpbuf, cnt); } return GString(SHA.getHash()); }