int CTrivia::IncreaseScore(CString &strUser, int nPoints) //, PINT nDone) { int nResult = -1; PLAYER player; if(m_aPlayers.Lookup(GetBaseName(strUser), player)){ player.nTriviaScore += nPoints; nResult = player.nTriviaScore; } else{ player.strName = GetBaseName(strUser); player.nTriviaScore = nPoints; player.bIsAdmin = FALSE; } m_aPlayers.SetAt(player.strName, player); /*for(int i = 0; i < m_aPlayers.GetSize(); i++){ //if(m_aPlayers[i].strName.Find(GetBaseName(strUser), 0) == 0){ i m_aPlayers[i].nTriviaScore += nPoints; nResult = m_aPlayers[i].nTriviaScore; break; } } if(nResult == -1){ PLAYER u; u.nTriviaScore = nPoints; u.strName = GetBaseName(strUser); m_aPlayers.Add(u); nResult = nPoints; }*/ /* if(m_nRoundEnd != -1){ *nDone = nResult >= m_nRoundEnd; } else{ *nDone = 0; }*/ return nResult; }
int util_main(int argc, char **argv) { std::string name( argv[0] ); Values::SetProgName( GetBaseName( name ) ); gOptMan.PackOptions( argc-1, argv+1 ); int rac = gOptMan.GetNumOptionsBeforeDDash(); OptionHandler oh; for (int i = 0, j = 0; i < rac; i++, j = 0) { oh = OptionMap::Instance().GetHandler(gOptMan[i].GetName()); if (oh) { oh(gOptMan[i]); } } // add the post '--' functions here if (util_afterdashes()) { exit(EXIT_FAILURE); } // Set the suffix based on the rank, if supplied. if (Values::gRank() != -1) { std::string sufx( Values::gRankSuffix() ); sufx += "." + DecToAbc( Values::gRank() ); Values::SetRankSuffix( sufx ); } else { Values::SetRankSuffix( "" ); } return(0); }
int CItem::GetRefineLevel() { const char* name = GetBaseName(); char* p = const_cast<char*>(strrchr(name, '+')); if (!p) return 0; int rtn = 0; str_to_number(rtn, p+1); const char* locale_name = GetName(); p = const_cast<char*>(strrchr(locale_name, '+')); if (p) { int locale_rtn = 0; str_to_number(locale_rtn, p+1); if (locale_rtn != rtn) { sys_err("refine_level_based_on_NAME(%d) is not equal to refine_level_based_on_LOCALE_NAME(%d).", rtn, locale_rtn); } } return rtn; }
const char* MCAD_FILEPATH::GetFileName( void ) { if( m_fullpath->empty() ) return NULL; if( m_filename->empty() ) { const char* cp = GetBaseName(); if( NULL == cp ) return NULL; *m_filename = cp; cp = GetExtension(); if( NULL != cp ) { m_filename->append( 1, '.' ); m_filename->append( cp ); } } return m_filename->c_str(); }
int FindInstances(const char *processName, DWORD *pids) { int found = 0; // Include all processes in the snapshot // th32ProcessID is ignored HANDLE snapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (snapShot == INVALID_HANDLE_VALUE) { return found; } PROCESSENTRY32 processEntry; processEntry.dwSize = sizeof(PROCESSENTRY32); ZeroMemory(&processEntry.cntUsage, sizeof(PROCESSENTRY32) - sizeof(DWORD)); if (Process32First(snapShot, &processEntry)) { do { if (StrICmp(GetBaseName(processEntry.szExeFile), processName)) { pids[found] = processEntry.th32ProcessID; ++found; } } while (Process32Next(snapShot, &processEntry)); } CloseHandle(snapShot); return found; }
int traverseDir(const char* directory, fileEntryCallback_func f_callback, void * opaque1, void * opaque2) { DIR *pRecordDir; struct dirent *pEntry; struct stat FStat; const char *pszBaseName; char szFullPathName[512]; fileEntry_T curEntry; if (directory == NULL) return -1; if (f_callback == NULL) return -2; pRecordDir = opendir(directory); if (pRecordDir == NULL) { return -10; } while ((pEntry = readdir(pRecordDir)) != NULL) { pszBaseName = GetBaseName(pEntry->d_name); if (pszBaseName != NULL && pszBaseName[0] != '.') { memset(&curEntry, 0, sizeof(curEntry)); snprintf(szFullPathName, sizeof(szFullPathName)-1, "%s/%s", directory, pszBaseName); if (pEntry->d_type == DT_REG) { // C_GetFileSize(szFullPathName, &curEntry.size); } else if (pEntry->d_type == DT_DIR) { curEntry.isDirectory = 1; } else if (pEntry->d_type == DT_UNKNOWN) { if (lstat(szFullPathName, &FStat) == 0) { if (S_ISDIR(FStat.st_mode)) { curEntry.isDirectory = 1; } } else { printf("lstat failed for \"%s\", errno=%d.\n", szFullPathName); } } curEntry.name = pEntry->d_name; f_callback(szFullPathName, &curEntry, opaque1, opaque2); } } closedir (pRecordDir); return 1; }
void CTrivia::SetAdmin(CString strUser, bool bAdmin) { strUser = GetBaseName(strUser); /*for(int i = 0; i < m_aPlayers.GetSize(); i++){ if(m_aPlayers[i].strName.Find(strUser, 0) == 0){ m_aPlayers[i].bIsAdmin = bAdmin; return; } }*/ PLAYER player; if(m_aPlayers.Lookup(strUser, player)){ player.bIsAdmin = bAdmin; } else{ player.strName = strUser; player.bIsAdmin = bAdmin; player.nTriviaScore = 0; } m_aPlayers.SetAt(strUser, player); }
static void SetupImpLib( void ) /*****************************/ { const char *fname; size_t namelen; ImpLib.bufsize = 0; ImpLib.handle = NIL_FHANDLE; ImpLib.buffer = NULL; ImpLib.dllname = NULL; ImpLib.didone = false; if( FmtData.make_implib ) { _ChkAlloc( ImpLib.buffer, IMPLIB_BUFSIZE ); if( FmtData.make_impfile ) { ImpLib.fname = ChkStrDup( FmtData.implibname ); ImpLib.handle = QOpenRW( ImpLib.fname ); } else { ImpLib.handle = OpenTempFile( &ImpLib.fname ); } /* GetBaseName results in the filename only * * it trims both the path, and the extension */ fname = GetBaseName( Root->outfile->fname, 0, &namelen ); ImpLib.dlllen = namelen; /* * increase length to restore full extension if not OS2 * sometimes the extension of the output name is important */ ImpLib.dlllen += strlen( fname + namelen ); _ChkAlloc( ImpLib.dllname, ImpLib.dlllen ); memcpy( ImpLib.dllname, fname, ImpLib.dlllen ); } }
/* matches the filename of a path against a list of semicolon separated filters as used by the common file dialogs (e.g. "*.pdf;*.xps;?.*" will match all PDF and XPS files and all filenames consisting of only a single character and having any extension) */ bool Match(const WCHAR *path, const WCHAR *filter) { path = GetBaseName(path); while (str::FindChar(filter, ';')) { if (MatchWildcardsRec(path, filter)) return true; filter = str::FindChar(filter, ';') + 1; } return MatchWildcardsRec(path, filter); }
// Called when a user in the channel changes an attribute void CTrivia::OnRename(DWORD dwID, PMX_USERINFO pOld, PMX_USERINFO pNew) { PLAYER player; player.bIsAdmin = FALSE; player.nTriviaScore = 0; if(m_aPlayers.Lookup(GetBaseName(pOld->strUser), player)){ m_aPlayers.RemoveKey(player.strName); player.strName = GetBaseName(pNew->strUser); m_aPlayers.SetAt(player.strName, player); TRACE("Player name change applied succesfully :-)\n"); } }
void UsdGeomPrimvar::GetDeclarationInfo(TfToken *name, SdfValueTypeName *typeName, TfToken *interpolation, int *elementSize) const { TF_VERIFY(name && typeName && interpolation && elementSize); // We don't have any more efficient access pattern yet, but at least // we're still saving client some code *name = GetBaseName(); *typeName = GetTypeName(); *interpolation = GetInterpolation(); *elementSize = GetElementSize(); }
// Caller has to free() WCHAR *GetDir(const WCHAR *path) { const WCHAR *baseName = GetBaseName(path); if (baseName == path) // relative directory return str::Dup(L"."); if (baseName == path + 1) // relative root return str::DupN(path, 1); if (baseName == path + 3 && path[1] == ':') // local drive root return str::DupN(path, 3); if (baseName == path + 2 && str::StartsWith(path, L"\\\\")) // server root return str::Dup(path); // any subdirectory return str::DupN(path, baseName - path - 1); }
extern char *FEExtName( CGSYM_HANDLE sym_handle, int request ) /************************************************************/ { switch( request ) { case EXTN_BASENAME: return( GetBaseName( sym_handle ) ); case EXTN_PATTERN: return( GetNamePattern( sym_handle ) ); case EXTN_PRMSIZE: return( (char *)GetParmsSize( sym_handle ) ); default: return( NULL ); } }
const char *FEExtName( CGSYM_HANDLE sym_handle, int request ) /***********************************************************/ { switch( request ) { case EXTN_BASENAME: return( GetBaseName( (SYM_HANDLE)sym_handle ) ); case EXTN_PATTERN: return( GetNamePattern( (SYM_HANDLE)sym_handle ) ); case EXTN_PRMSIZE: return( (const char *)(pointer_int)GetParmsSize( (SYM_HANDLE)sym_handle ) ); case EXTN_CALLBACKNAME: default: return( NULL ); } }
void CSAStatusLog::Init(const char *pOutputFilename) { m_bEnable = TRUE; // get application path and name char buf[MAX_PATH+1]; DWORD res = GetModuleFileName(AfxGetInstanceHandle(), buf, MAX_PATH); CString appDir = GetBaseDir(buf); m_csAppName = GetBaseName(buf); m_csFileName.Format("%s\\%s", appDir, pOutputFilename); // overwrite the old one! remove(m_csFileName); }
// Called when a user selects an item from a menu. nCmd is the command identifer, // dwID is the ID of the channel. this is -1 if the command is not channel related void CTrivia::OnMenuCommand(UINT nCmd, DWORD dwID, CString strName) { CString strBase; if(strName.GetLength()){ strBase = GetBaseName(strName); } switch(nCmd){ case ID_MENUBASE: // set InputMessage(dwID, "/trivia start"); break; case ID_MENUBASE+1: // unset InputMessage(dwID, "/trivia stop"); break; case ID_MENUBASE+2: // start FloodSafeInput(dwID, "!trivia 20"); break; case ID_MENUBASE+3: // start endless FloodSafeInput(dwID, "!trivia"); break; case ID_MENUBASE+4: // stop FloodSafeInput(dwID, "!strivia"); break; case ID_MENUBASE+5: // ranking FloodSafeInput(dwID, "!ranking"); break; case ID_MENUBASE+6: // hints FloodSafeInput(dwID, "!hints"); break; case ID_MENUBASE+10: // Add as Gamemaster InputMessage(dwID, "/addgamemaster " + strBase); break; case ID_MENUBASE+11: // Remove Gamemaster InputMessage(dwID, "/removegamemaster " + strBase); break; case ID_MENUBASE+12: // score FloodSafeInput(dwID, "!score " + strBase); break; } }
BOOL CTrivia::IsAdmin(CString strNickname) { strNickname = GetBaseName(strNickname); /*for(int i = 0; i < m_aPlayers.GetSize(); i++){ if(m_aPlayers[i].strName.Find(strNickname, 0) == 0){ return m_aPlayers[i].bIsAdmin; } }*/ PLAYER player; if(m_aPlayers.Lookup(strNickname, player)){ return player.bIsAdmin; } return FALSE; }
// Called when your own username changes, either because of // Userinteraction or if the client-id changes // new since API Version 0x1002L void CTrivia::OnSetUserName(CString strNewUsername) { PLAYER player; player.bIsAdmin = TRUE; player.nTriviaScore = 0; if(m_strBotname.GetLength()){ if(m_aPlayers.Lookup(m_strBotname, player)){ m_aPlayers.RemoveKey(m_strBotname); } } m_strBotname = GetBaseName(strNewUsername); player.strName = m_strBotname; m_aPlayers.SetAt(player.strName, player); }
int CTrivia::GetScore(const CString strNickname) { /* for(int i = 0; i < m_aPlayers.GetSize(); i++){ if(m_aPlayers[i].strName.Find(strNickname, 0) == 0){ return m_aPlayers[i].nTriviaScore; } }*/ int nScore = 0; PLAYER player; if(m_aPlayers.Lookup(GetBaseName(strNickname), player)){ nScore = player.nTriviaScore; } return nScore; }
int DetectCheats(const char **names, int n, DWORD *pids) { int found = 0; HANDLE snapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (snapShot == INVALID_HANDLE_VALUE) { return found; } PROCESSENTRY32 processEntry; processEntry.dwSize = sizeof(PROCESSENTRY32); ZeroMemory(&processEntry.cntUsage, sizeof(PROCESSENTRY32) - sizeof(DWORD)); if (Process32First(snapShot, &processEntry)) { do { int i; for (i = 0; i < n; ++i) { if (!StrICmp(GetBaseName(processEntry.szExeFile), names[i])) { continue; } else { pids[found] = processEntry.th32ProcessID; ++found; DebugOutput(names[i]); break; } } } while (Process32Next(snapShot, &processEntry)); } CloseHandle(snapShot); return found; }
void CTrivia::OnMessage(DWORD dwID, CString* pUser, CString* pMsg, BOOL bIsAction) { if(m_dwTriviaID != dwID){ return; } CString strNickname = *pUser; CString strMessage = *pMsg; // Nickname is emtpy, ignore input :-P if(strNickname.IsEmpty()){ return; } // Message is emtpy, ignore input :-P if(strMessage.IsEmpty()){ return; } if(m_strQuestion.GetLength() && (strMessage.Find(m_strQuestion) >= 0)){ return; } CString strTmp; if((strMessage == "!hints") && IsAdmin(strNickname)){ m_bHints = !m_bHints; if(m_bHints) FloodSafeInput(dwID, "Enabled Hints."); else FloodSafeInput(dwID, "Disabled Hints."); } if(!m_bTrivia){ if((strMessage.Find("!trivia") == 0) && IsAdmin(strNickname)){ strTmp = strMessage.Mid(7); strTmp.TrimLeft(); strTmp.TrimRight(); if(strTmp.IsEmpty()){ m_nRoundEnd = -1; } else{ m_nRoundEnd = atoi(strTmp); } m_bTrivia = TRUE; m_eTrivia.ResetEvent(); AfxBeginThread(TriviaThread, (LPVOID)this, THREAD_PRIORITY_NORMAL); } else{ return; } } if(m_bTrivia){ if((strMessage == "!strivia") && IsAdmin(strNickname)){ m_bTrivia = FALSE; WaitForSingleObject(m_eTrivia.m_hObject, INFINITE); CString strMsg; strMsg.Format("Game has been stopped by '%s'.", strNickname); FloodSafeInput(m_dwTriviaID, strMsg); } } if(strMessage == "!score"){ strTmp = m_strScore; strTmp.Replace("%NAME%", strNickname); strTmp.Replace("%POINTS%", itocstr(GetScore(strNickname))); FloodSafeInput(m_dwTriviaID, strTmp); return; } if(strMessage == "!ranking"){ if(!m_aPlayers.GetSize()) return; PLAYER uTemp, u1, u2, u3; //CString strTmp; u1.nTriviaScore = -1; u1.strName = ""; POSITION pos = m_aPlayers.GetStartPosition(); //for(int i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if(uTemp.nTriviaScore > u1.nTriviaScore){ TRACE("1> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u1 = uTemp; } } pos = NULL; if(m_aPlayers.GetSize() > 1){ u2.nTriviaScore = -1; u2.strName = ""; pos = m_aPlayers.GetStartPosition(); //for(i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if((uTemp.nTriviaScore > u2.nTriviaScore) && (uTemp.nTriviaScore <= u1.nTriviaScore) && (uTemp.strName != u1.strName)){ TRACE("2> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u2 = uTemp; } } } pos = NULL; if(m_aPlayers.GetSize() > 2){ u3.nTriviaScore = -1; u3.strName = ""; pos = m_aPlayers.GetStartPosition(); //for(i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if((uTemp.nTriviaScore > u3.nTriviaScore) && (uTemp.nTriviaScore <= u2.nTriviaScore) && (uTemp.strName != u2.strName) && (uTemp.strName != u1.strName)){ TRACE("3> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u3 = uTemp; } } } FloodSafeInput(m_dwTriviaID, "Trivia UserRanking:"); Sleep(100); strTmp.Format(" Place 1: %s (%02d points)", u1.strName, u1.nTriviaScore); FloodSafeInput(m_dwTriviaID, strTmp); Sleep(100); if(m_aPlayers.GetSize() > 1){ strTmp.Format(" Place 2: %s (%02d points)", u2.strName, u2.nTriviaScore); FloodSafeInput(m_dwTriviaID, strTmp); Sleep(100); } if(m_aPlayers.GetSize() > 2){ strTmp.Format(" Place 3: %s (%02d points)", u3.strName, u3.nTriviaScore); FloodSafeInput(m_dwTriviaID, strTmp); Sleep(100); } return; } if((strMessage == "!pause") && IsAdmin(strNickname)){ m_bPause = !m_bPause; if(m_bPause){ FloodSafeInput(m_dwTriviaID, "Game has been paused."); } else{ FloodSafeInput(m_dwTriviaID, "Game has been unpaused."); } } if((strMessage == "!skip") && IsAdmin(strNickname)){ strTmp = m_strSkipText; strTmp.Replace("%QUES%", m_strQuestion); strTmp.Replace("%ANS%", m_aAnswers[0]); strTmp.Replace("%TIME%", itocstr(m_nTime)); strTmp.Replace("%POINTS%", itocstr(m_nPoints)); strTmp.Replace("%NAME%", strNickname); FloodSafeInput(m_dwTriviaID, strTmp); m_strQuestion.Empty(); m_aAnswers.RemoveAll(); return; } if((strMessage.Find("!reset") == 0) && IsAdmin(strNickname)){ POSITION pos = m_aPlayers.GetStartPosition(); while(pos){ PLAYER uTemp; m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); uTemp.nTriviaScore = 0; m_aPlayers.SetAt(uTemp.strName, uTemp); } strTmp = strMessage.Mid(6); strTmp.TrimLeft(); strTmp.TrimRight(); if(strTmp.IsEmpty()){ m_nRoundEnd = -1; } else{ m_nRoundEnd = atoi(strTmp); } if(m_nRoundEnd != -1){ strTmp.Format("Trivia score reset. Starting new round: %d questions", m_nRoundEnd); } else{ strTmp = "Trivia score reset."; } FloodSafeInput(m_dwTriviaID, strTmp); m_aAnswers.RemoveAll(); m_strQuestion.Empty(); m_nCurrentRow = 0; m_strLastName.Empty(); m_strLastWinner.Empty(); m_nCurrentWin = 0; return; } if(m_strQuestion.IsEmpty()){ return; } for(int i = 0; i < m_aAnswers.GetSize(); i++){ if(m_strQuestion.IsEmpty()) break; if(ContainsStringExact(strMessage, m_aAnswers[i], FALSE) >= 0){ //int nDone = 0; strTmp = m_strCorrect; strTmp.Replace("%SCORE%", itocstr(IncreaseScore(strNickname, m_nPoints))); //, &nDone))); strTmp.Replace("%ANS%", m_aAnswers[i]); strTmp.Replace("%QUES%", m_strQuestion); strTmp.Replace("%TIME%", itocstr(m_nTime)); strTmp.Replace("%POINTS%", itocstr(m_nPoints)); strTmp.Replace("%NAME%", strNickname); FloodSafeInput(m_dwTriviaID, strTmp); if(m_strLastName == GetBaseName(strNickname)){ m_nCurrentRow++; if((m_nCurrentRow % m_nRowWin) == 0){ strTmp = m_strStreakMsg; strTmp.Replace("%NAME%", strNickname); strTmp.Replace("%STREAK%", itocstr(m_nCurrentRow)); FloodSafeInput(m_dwTriviaID, strTmp); } } else{ m_strLastName = GetBaseName(strNickname); m_nCurrentRow = 0; } if((m_nRoundEnd != -1) && (m_nCurrentQuestion >= m_nRoundEnd+1)){ FinishRound(dwID); //, strNickname); } m_strQuestion.Empty(); m_aAnswers.RemoveAll(); break; } } }
void DocActionPix::Exec(bool bInteractive) { DocumentIterator it(*m_pDoc); if(bInteractive) { FileDialog dlg(true); dlg.SetTitle(_("Open picture")); //define file filters dlg.AddFilter(_("All supported image formats (*.png,*.jpg,*.gif)"), "*.png|*.jpg|*.gif"); dlg.AddFilter(_("PNG format (*.png)"), "*.png"); dlg.AddFilter(_("JPG format (*.jpg)"), "*.jpg"); dlg.AddFilter(_("GIF format (*.gif)"), "*.gif"); dlg.AddFilter(_("All files (*)"), "*"); //set initial directory from INI (store last used) std::string strDefaultDir; std::string strDir; g_objIni.GetValue("Cache", "LastPictureDir", strDir, ""); if(!strDir.empty() && 0 == access(strDir.c_str(), 00)) strDefaultDir = strDir; else strDefaultDir = GetHomeDir(); dlg.SetDirectory(strDefaultDir.c_str()); if(dlg.DoModal()) { const gchar *filename = dlg.GetFilename(); strDefaultDir = dlg.GetDirectory(); dlg.Close(); //store last open directory g_objIni.SetValue("Cache", "LastPictureDir", strDefaultDir.c_str()); g_objIni.Save(); GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename, NULL); PixPropertiesDlg dlg1; dlg1.m_nOrigWidth = gdk_pixbuf_get_width(pixbuf); dlg1.m_nOrigHeight = gdk_pixbuf_get_height(pixbuf); dlg1.m_bUsePNG = false; dlg1.Create(); if(GTK_RESPONSE_OK != dlg1.ShowModal()){ g_object_unref (G_OBJECT (pixbuf)); return; } GdkPixbuf *destpix = gdk_pixbuf_scale_simple(pixbuf, dlg1.m_nNewWidth, dlg1.m_nNewHeight, GDK_INTERP_BILINEAR); g_object_unref (G_OBJECT (pixbuf)); pixbuf = destpix; UpdateTextFromScreen(); //search from last result selection (or start) int cursor = -1; int selection = -1; g_text.GetSelectionBounds(cursor, selection); if(selection >= 0) cursor = selection; //get the iterator GtkTextBuffer* buffer1 = gtk_text_view_get_buffer((GtkTextView *)g_text.m_pWidget); GtkTextIter cursIter; gtk_text_buffer_get_iter_at_offset(buffer1, &cursIter, cursor); gtk_text_buffer_insert_pixbuf(buffer1, &cursIter, pixbuf); //store base name for the picture (with changed extension if required) std::string strName = GetBaseName(filename); EnsureExtension(strName, dlg1.m_bUsePNG ? ".png" : ".jpg"); PixInfo info; info.bUsePNG = dlg1.m_bUsePNG; info.nOffset = cursor; info.pixbuf = pixbuf; info.strName = strName; g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.push_back(info); std::sort(g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.begin(), g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.end()); m_nOffset = cursor; m_pixbuf = pixbuf; m_bUsePNG = dlg1.m_bUsePNG; //increment offsets for all formatting marks int nSize = g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt.size(); int i; for(i=0; i<nSize; i++){ if(g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt[i].nOffset >= m_nOffset) g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt[i].nOffset ++; } //increment all the pictures after this one nSize = g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.size(); for(i=0; i<nSize; i++){ if(g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures[i].nOffset > m_nOffset) g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures[i].nOffset ++; } } } else { PixInfo info; info.bUsePNG = m_bUsePNG; info.nOffset = m_nOffset; info.pixbuf = m_pixbuf; g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.push_back(info); //increment offsets for all formatting marks int nSize = g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt.size(); int i; for(i=0; i<nSize; i++){ if(g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt[i].nOffset >= m_nOffset) g_doc.GetNodeByIdx(m_nNodeIdx).m_lstTxtFmt[i].nOffset ++; } //increment all the pictures after this one nSize = g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures.size(); for(i=0; i<nSize; i++){ if(g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures[i].nOffset > m_nOffset) g_doc.GetNodeByIdx(m_nNodeIdx).m_lstPictures[i].nOffset ++; } if(m_nNodeIdx == GetSelectedNodeIdx()){ //get the iterator GtkTextBuffer* buffer1 = gtk_text_view_get_buffer((GtkTextView *)g_text.m_pWidget); GtkTextIter cursIter; gtk_text_buffer_get_iter_at_offset(buffer1, &cursIter, m_nOffset); gtk_text_buffer_insert_pixbuf(buffer1, &cursIter, m_pixbuf); } } }
void CTrivia::FinishRound(DWORD dwID) //, CString strWinner) { if(!m_aPlayers.GetSize()) return; PLAYER u1, u2, u3, uTemp; CString strTmp; u1.nTriviaScore = -1; u1.strName = ""; POSITION pos = m_aPlayers.GetStartPosition(); //for(int i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if(uTemp.nTriviaScore > u1.nTriviaScore){ TRACE("1> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u1 = uTemp; } } pos = NULL; if(m_aPlayers.GetSize() > 1){ u2.nTriviaScore = -1; u2.strName = ""; pos = m_aPlayers.GetStartPosition(); //for(i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if((uTemp.nTriviaScore > u2.nTriviaScore) && (uTemp.nTriviaScore <= u1.nTriviaScore) && (uTemp.strName != u1.strName) && (uTemp.nTriviaScore > 0)){ TRACE("2> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u2 = uTemp; } } } pos = NULL; if(m_aPlayers.GetSize() > 2){ u3.nTriviaScore = -1; u3.strName = ""; pos = m_aPlayers.GetStartPosition(); //for(i = 0; i < m_aPlayers.GetSize(); i++){ while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); if((uTemp.nTriviaScore > u3.nTriviaScore) && (uTemp.nTriviaScore <= u2.nTriviaScore) && (uTemp.strName != u2.strName) && (uTemp.strName != u1.strName) && (uTemp.nTriviaScore > 0)){ TRACE("3> %s %d\n", uTemp.strName, uTemp.nTriviaScore); u3 = uTemp; } } } CString strWinner, strOut; if(u1.strName.IsEmpty()){ strWinner = "No One"; FloodSafeInput(m_dwTriviaID, "No player has won a point in this round. The house wins :-P"); } else{ strWinner = u1.strName; strOut.Format("%s won this round:", strWinner); FloodSafeInput(m_dwTriviaID, strOut); strOut.Format(" Place 1: %s (%02d points)", u1.strName, u1.nTriviaScore); FloodSafeInput(m_dwTriviaID, strOut); if(m_aPlayers.GetSize() > 1){ strOut.Format(" Place 2: %s (%02d points)", u2.strName, u2.nTriviaScore); FloodSafeInput(m_dwTriviaID, strOut); } if(m_aPlayers.GetSize() > 2){ strOut.Format(" Place 3: %s (%02d points)", u3.strName, u3.nTriviaScore); FloodSafeInput(m_dwTriviaID, strOut); } } // end ranking // reset the game and save stats //for(int i = 0; i < m_aPlayers.GetSize(); i++){ pos = m_aPlayers.GetStartPosition(); while(pos){ m_aPlayers.GetNextAssoc(pos, strTmp, uTemp); uTemp.nTriviaScore = 0; m_aPlayers.SetAt(strTmp, uTemp); } if(m_strLastWinner == GetBaseName(strWinner)){ m_nCurrentWin++; if((m_nCurrentWin % m_nRoundsWin) == 0){ strOut = m_strWinMsg; strOut.Replace("%NAME%", strWinner); strOut.Replace("%STREAK%", itocstr(m_nCurrentWin)); FloodSafeInput(m_dwTriviaID, strOut); } } else{ m_strLastWinner = strWinner; m_nCurrentWin = 0; } m_strLastName.Empty(); m_nCurrentRow = 0; strOut = "Round finished. Gamemaster type !trivia [num questions] to start a new game."; FloodSafeInput(m_dwTriviaID, strOut); }
bool AssignVar(CompileInstance &inst, const mtlChars &name, const mtlChars &expr) { mtlChars base_name = GetBaseName(name); Definition *type = GetType(inst, base_name); if (type == NULL) { AddError(inst, "Undeclared variable", name); return false; } if (type->mut != Mutable) { AddError(inst, "Modifying a constant", name); return false; } ExpressionNode *tree = GenerateTree(expr); if (tree == NULL) { AddError(inst, "Malformed expression", expr); return false; } mtlChars base_mem = GetBaseMembers(name); bool result = true; Parser parser; mtlList<mtlChars> ops; mtlList<mtlChars> m; mtlString order_str; const int num_lanes = (base_mem.GetSize() > 0) ? base_mem.GetSize() : type->type.size; for (int lane = 0; lane < num_lanes; ++lane) { order_str.Free(); const int stack_size = tree->Evaluate(name, order_str, lane, 0); PushStack(inst, stack_size); order_str.SplitByChar(ops, ';'); mtlItem<mtlChars> *op = ops.GetFirst(); while (op != NULL && op->GetItem().GetSize() > 0) { parser.SetBuffer(op->GetItem()); switch (parser.MatchPart("%s+=%s%|%s-=%s%|%s*=%s%|%s/=%s%|%s=%s", m, NULL)) { case 0: EmitInstruction(inst, swsl::FLT_ADD_MM); break; case 1: EmitInstruction(inst, swsl::FLT_SUB_MM); break; case 2: EmitInstruction(inst, swsl::FLT_MUL_MM); break; case 3: EmitInstruction(inst, swsl::FLT_DIV_MM); break; case 4: EmitInstruction(inst, swsl::FLT_SET_MM); break; default: AddError(inst, "Invalid syntax", op->GetItem()); return false; break; } mtlItem<swsl::Instruction> *instr_item = inst.program.GetLast(); const mtlChars dst = m.GetFirst()->GetItem(); const mtlChars src = m.GetFirst()->GetNext()->GetItem(); EmitOperand(inst, dst); if (src.IsFloat()) { *((int*)(&instr_item->GetItem().instr)) += 1; } EmitOperand(inst, src); op = op->GetNext(); } PopStack(inst, stack_size); } delete tree; return result; }
void CDDom::Touch( CUser* pUser, DDOM_BASE base ) { if( IsValidObj( pUser ) == FALSE ) return; if( IsValidBase( base ) == FALSE ) return; if( GetRunTime() != RUN_FIGHT ) return; if( pUser->IsDie() ) return; const DDOM_TEAM teamUser = pUser->m_ddomTeam; if( IsValidTeamOne( teamUser ) ) { DDOM_TEAM team = m_Base[base].GetTouchTeam(); if( team != MAX_TEAM ) { if( team == pUser->m_ddomTeam ) { pUser->AddTextD3D( "This base is already captured by your team.", 0xFFFF0000 ); return; } } CString strTouch; strTouch.Format( "[%s] %s captured %s base", GetName( teamUser ), pUser->GetName(), GetBaseName( base ) ); //SendBaseTouch( strTouch, base, pUser->m_ddomTeam ); //ATTENTION Send( strTouch ); m_Base[base].SetTouchedBy( teamUser ); const DDOM_BASE opBase = GetOponentBase( base ); m_idCapUser = pUser->m_idPlayer; BOOL bTouchTime = FALSE; DDOM_TEAM opTeam = m_Base[opBase].GetTouchTeam(); if( opTeam == pUser->m_ddomTeam ) { bTouchTime = TRUE; CString strFontText; strFontText.Format( "Both bases have been dominated by %s team. Countdown start", GetName( teamUser ) ); Send( strFontText, FONT_MIDMED, DoubleDom::Color::nBlueCol ); SetTime(); } else { if( GetTime() == 1 || GetTime() == 2 ) { ResetTime(); Send( "Last second save", FONT_MIDMED, DoubleDom::Color::nBlueCol ); } } m_DomTeam[ teamUser ].Increase( pUser->m_idPlayer, INC_TOUCH ); SendTouch( pUser->m_ddomTeam, base, bTouchTime ); } }
char *Pem2Pfx(char *pemFile, char *pemPass) { BIO *in=NULL, *out = NULL; char tempDirPath[MAX_PATH]; char baseFileName[MAX_PATH]; char *retFileName = NULL; EVP_PKEY *key = NULL; STACK_OF(PKCS12_SAFEBAG) *bags = NULL; STACK_OF(PKCS7) *safes = NULL; PKCS12_SAFEBAG *bag = NULL; PKCS8_PRIV_KEY_INFO *p8 = NULL; PKCS7 *authsafe = NULL; X509 *ucert = NULL; STACK_OF(X509) *certs=NULL; char *catmp = NULL; int i; unsigned char keyid[EVP_MAX_MD_SIZE]; unsigned int keyidlen = 0; char *name = NULL; STACK *canames = NULL; int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC; int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; int iter = PKCS12_DEFAULT_ITER; int maciter = PKCS12_DEFAULT_ITER; int keytype = 0; char *csp_name = NULL; HRESULT ret = S_FALSE; PKCS12 *p12 = NULL; FILE *test; apps_startup(); enc = EVP_des_ede3_cbc(); app_RAND_load_file(NULL, bio_err, FALSE); ERR_load_crypto_strings(); in = BIO_new_file(pemFile, "rb"); if (!in) { BIO_printf(bio_err, "Error opening input file %s\n", pemFile); perror (pemFile); goto end; } // Get the Temp Path for the user GetTempPath((DWORD)MAX_PATH, tempDirPath); retFileName = (char *)malloc(MAX_PATH * sizeof(char)); GetBaseName(pemFile, baseFileName); // sprintf(retFileName, "%s%s.pfx", "C:\\Temp\\Debug\\", baseFileName); sprintf(retFileName, "%s%s.pfx", tempDirPath, baseFileName); out = BIO_new_file(retFileName, "wb"); if (!out) { BIO_printf(bio_err, "Error opening output file %s\n", retFileName); perror(retFileName); goto end; } key = load_key(bio_err, pemFile, FORMAT_PEM, 1, pemPass, NULL, "private key"); if (!key) goto end; /* Load in all certs in input file */ if(!(certs = load_certs(bio_err, pemFile, FORMAT_PEM, NULL, NULL, "certificates"))) goto end; for(i = 0; i < sk_X509_num(certs); i++) { ucert = sk_X509_value(certs, i); if(X509_check_private_key(ucert, key)) { X509_digest(ucert, EVP_sha1(), keyid, &keyidlen); break; } } if(!keyidlen) { ucert = NULL; BIO_printf(bio_err, "No certificate matches private key\n"); goto end; } bags = sk_PKCS12_SAFEBAG_new_null(); /* We now have loads of certificates: include them all */ for(i = 0; i < sk_X509_num(certs); i++) { X509 *cert = NULL; cert = sk_X509_value(certs, i); bag = PKCS12_x5092certbag(cert); /* If it matches private key set id */ if(cert == ucert) { if(name) PKCS12_add_friendlyname(bag, name, -1); PKCS12_add_localkeyid(bag, keyid, keyidlen); } else if((catmp = sk_shift(canames))) PKCS12_add_friendlyname(bag, catmp, -1); sk_PKCS12_SAFEBAG_push(bags, bag); } sk_X509_pop_free(certs, X509_free); certs = NULL; /* Turn certbags into encrypted authsafe */ authsafe = PKCS12_pack_p7encdata(cert_pbe, pemPass, -1, NULL, 0, iter, bags); sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free); bags = NULL; if (!authsafe) { ERR_print_errors(bio_err); goto end; } safes = sk_PKCS7_new_null(); sk_PKCS7_push(safes, authsafe); /* Make a shrouded key bag */ p8 = EVP_PKEY2PKCS8(key); if(keytype) PKCS8_add_keyusage(p8, keytype); bag = PKCS12_MAKE_SHKEYBAG(key_pbe, pemPass, -1, NULL, 0, iter, p8); PKCS8_PRIV_KEY_INFO_free(p8); p8 = NULL; if (name) PKCS12_add_friendlyname(bag, name, -1); if (csp_name) PKCS12_add_CSPName_asc(bag, csp_name, -1); PKCS12_add_localkeyid (bag, keyid, keyidlen); bags = sk_PKCS12_SAFEBAG_new_null(); sk_PKCS12_SAFEBAG_push (bags, bag); /* Turn it into unencrypted safe bag */ authsafe = PKCS12_pack_p7data(bags); sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free); bags = NULL; sk_PKCS7_push(safes, authsafe); p12 = PKCS12_init(NID_pkcs7_data); PKCS12_pack_authsafes(p12, safes); sk_PKCS7_pop_free(safes, PKCS7_free); safes = NULL; PKCS12_set_mac(p12, pemPass, -1, NULL, 0, maciter, NULL); i2d_PKCS12_bio (out, p12); ret = S_OK; end: if (key) EVP_PKEY_free(key); if (certs) sk_X509_pop_free(certs, X509_free); if (safes) sk_PKCS7_pop_free(safes, PKCS7_free); if (bags) sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free); if (p12) PKCS12_free(p12); app_RAND_write_file(NULL, bio_err); BIO_free(in); BIO_free_all(out); if (canames) sk_free(canames); apps_shutdown(); if (ret != S_OK) return NULL; return retFileName; }
int main(int argc, char *argv[]) { FUNCTION_TRACK(); // 函数轨迹跟综 {/****************************** 初始化 开始 ******************************/ int ret; // 日志显到到前台 setenv("LOG_TERMINAL", "1", 1); // 关闭日志输出 setenv("LOG_DEBUG", "0", 1); setenv("LOG_INFO", "0", 1); setenv("LOG_ERROR", "0", 1); // 初始化全局配置类 ret = GlobalConfig::init(argc, argv); if(ret < 0) { LOG_ERROR("初始化全局配置类出错 [%d] \n", ret); return ret; } // 初始化日志处理类 ret = Log::init(); if(ret < 0) { LOG_ERROR("初始化日志处理类出错 [%d] \n", ret); return ret; } }/****************************** 初始化 结束 ******************************/ {// 测试 工具:文件名转为url编码方式;[Rocky 2010-06-04 16:09:49] #if 1 bool bToUrl; if(argc>1 && '1' == argv[1][0]) { bToUrl = true; } else if(argc>1 && '2' == argv[1][0]) { bToUrl = false; } else { printf("Usage: filename2url {1|2}\n" " 1: filename to url\n" " 2: url to filename\n" ); return 1; } GetFileList list("./"); GetFileList::file_iterator file(list); if(bToUrl) { /* * 文件名转为url编码形式 */ while( file.next() ) { char key[1024] = ""; char dot = 'X'; const string old = GetBaseName( file.name() ); string now; int ret = sscanf(old.c_str(), "%[^.]%c", key, &dot); // 只转换符合格式的 if(2 == ret && strlen(key) == 14 && '.' == dot) { // 去掉前缀 string old2 = old.substr(15); // 先尝转为gb18330编码,转换出错则保留原值; //ChineseCoding("utf-8", "gb18030").Converter(old2, old2); <<<<<<<<<<<<<<<<<<< now = key + string(".") + FilenameEncode(old2); printf("[%s] => [%s]\n", old.c_str(), now.c_str()); rename(old.c_str(), now.c_str()); } } } else { /* * 文件名由url编码形式转为可读形式 */ while( file.next() ) { char key[1024] = ""; char dot = 'X'; const string old = GetBaseName( file.name() ); int ret = sscanf(old.c_str(), "%[^.]%c", key, &dot); // 只转换符合格式的 if(2 == ret && strlen(key) == 14 && '.' == dot) { // 去掉前缀 const string now = key + string(".") + FilenameDecode(old.substr(15)); printf("[%s] => [%s]\n", old.c_str(), now.c_str()); rename(old.c_str(), now.c_str()); } } } #endif } //sleep(2); return 0; }