当前位置: 首页>>代码示例>>C++>>正文


C++ WDL_String::Append方法代码示例

本文整理汇总了C++中WDL_String::Append方法的典型用法代码示例。如果您正苦于以下问题:C++ WDL_String::Append方法的具体用法?C++ WDL_String::Append怎么用?C++ WDL_String::Append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WDL_String的用法示例。


在下文中一共展示了WDL_String::Append方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: handleLinksMsg

void handleLinksMsg(char* senderUsername , char* msgIn)
{
	WDL_String msgOut ; msgOut.Set("Link order:") ;
	int linkIdx ; int lastUsernameIdx = LINKS_CHAT_TRIGGER_LEN ; int usernameLen = -1 ;
	for (linkIdx = 0 ; linkIdx < N_LINKS ; ++linkIdx)
	{
		// parse username
		lastUsernameIdx += usernameLen + 1 ; usernameLen = -1 ; char aChar ;
		do aChar = msgIn[lastUsernameIdx + (++usernameLen)] ;
		while (aChar && aChar != ' ') ; if (!usernameLen) return ;

		char username[255] ; strncpy(username , msgIn + lastUsernameIdx , usernameLen) ; username[usernameLen] = '\0' ;

#if IS_CHAT_LINKS
		// chat full link order
		int userId = TeamStream::GetUserIdByName(username) ; msgOut.Append("\n") ;
		char linkMsg[255] ; sprintf(linkMsg , "Link %d: %s" , linkIdx + 1 , username) ; msgOut.Append(linkMsg) ;
		if (userId == USERID_NOBODY && strcmp(username , USERNAME_NOBODY)) msgOut.Append(" is not here") ;
#else IS_CHAT_LINKS
		int userId = TeamStream::GetUserIdByName(username) ;
#endif IS_CHAT_LINKS

		// set link
		if (!isUsernameLocal(senderUsername))
			if (TeamStream::IsUserIdReal(userId)) TeamStream::SetLink(userId , username , linkIdx , true) ;
			else TeamStream::Set_Link_GUI(USERID_NOBODY , username , linkIdx , N_LINKS) ;
	}
#if IS_CHAT_LINKS
	chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;
#endif IS_CHAT_LINKS
}
开发者ID:bill-auger,项目名称:TeamStream,代码行数:31,代码来源:chat.cpp

示例2: AppendTimestamp

const char* AppendTimestamp(const char* Mmm_dd_yyyy, const char* hh_mm_ss, const char* cStr)
{
    static WDL_String str;
    str.Set(cStr);
    WDL_String tStr;
    CompileTimestamp(Mmm_dd_yyyy, hh_mm_ss, &tStr);
    str.Append(" ");
    str.Append(tStr.Get());
    return str.Get();
}
开发者ID:b-vesco,项目名称:vfx-wdl,代码行数:10,代码来源:Log.cpp

示例3: OnMouseDown

  void OnMouseDown(int x, int y, IMouseMod* pMod)
  {
    WDL_String presetFilePath;
    mPlug->GetGUI()->DesktopPath(&presetFilePath);
#ifdef OS_WIN
    presetFilePath.Append("\\IPlugChunksPreset.txt");
#else //OSX
    presetFilePath.Append("IPlugChunksPreset.txt");
#endif
    mPlug->DumpPresetBlob(presetFilePath.Get());
  }
开发者ID:fab672000,项目名称:wdl-fab,代码行数:11,代码来源:IPlugChunks.cpp

示例4: on_list_update

void MainWnd::on_list_update()
{
    WDL_PtrList<ShellAction> *actions = NULL;
    App *the_app = NULL;
    the_app = App::get();
    actions = the_app->get_tasks();

#ifdef WIN32
    HWND ctrl = GetDlgItem(m_hwnd, IDC_TASKS);
    int sel_id = -1;
    sel_id = ListView_GetCurSel(ctrl);
    ListView_DeleteAllItems(ctrl);

    if(!actions->GetSize())
        return;

    for(int i = 0; i < actions->GetSize(); i++)
    {
        LVITEM lvitem;
        WDL_String tmp;
        char buf[128];
        ShellAction *action = actions->Get(i);

        lvitem.mask = LVIF_TEXT | LVIF_PARAM;
        lvitem.iItem = i;
        lvitem.iSubItem = 0;
        lvitem.lParam = (LPARAM)action->get_id();
        lvitem.cchTextMax = strlen(action->get_title());
        lvitem.pszText = action->get_title();

        ListView_InsertItem(ctrl, &lvitem);
        ListView_SetItemText(ctrl, i, 1, action->get_path());

        tmp = "Every ";
        itoa(action->get_interval(), buf, 10);
        tmp.Append(buf);
        tmp.Append(" ");
        tmp.Append(RUN_TYPE_LABELS[action->get_interval_type()]);

        ListView_SetItemText(ctrl, i, 2, tmp.Get());
    }

    if (sel_id >= 0 && m_selected_task)
    {
        ShellAction *action = the_app->get_task_by_id(sel_id + 1);
        the_app->activate_task(action);
        ListView_SetItemState(ctrl, sel_id, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
    }
#endif // WIN32
}
开发者ID:L1quid,项目名称:Slumber,代码行数:50,代码来源:main_wnd.cpp

示例5: display_task

void MainWnd::display_task(ShellAction *task, WDL_String log_data)
{
#ifdef WIN32
    HWND wnd = handle();
    HWND ctrl = GetDlgItem(wnd, IDC_JOBLOG);
    int enable = task ? 1 : 0;

    EnableWindow(ctrl, enable);
    EnableWindow(GetDlgItem(wnd, IDC_WITH_SEL_LABEL), enable);
    EnableWindow(GetDlgItem(wnd, IDC_EDIT_TASK), enable);
    EnableWindow(GetDlgItem(wnd, IDC_DELETE_TASK), enable);
    EnableWindow(GetDlgItem(wnd, IDC_PERFORM_TASK), enable);
    EnableWindow(GetDlgItem(wnd, IDC_LOGFRAME), enable);
    SetWindowText(ctrl, log_data.Get());

    if (task)
    {
        WDL_String tmp;
        tmp = "Task Log - ";
        tmp.Append(task->get_title());
        SetDlgItemText(wnd, IDC_LOGFRAME, tmp.Get());
        scroll_joblog_to_bottom();
    }
    else
    {
        SetDlgItemText(wnd, IDC_LOGFRAME, "Task Log");
    }

#endif // WIN32
}
开发者ID:L1quid,项目名称:Slumber,代码行数:30,代码来源:main_wnd.cpp

示例6: chat_addline

void chat_addline(char *src, char *text)
{
  WDL_String tmp;
  if (src && *src && !strncmp(text,"/me ",4))
  {
    tmp.Set("* ");
    tmp.Append(src);
    tmp.Append(" ");
    char *p=text+3;
    while (*p == ' ') p++;
    tmp.Append(p);
  }
  else
  {
   if (src&&*src)
   {
     tmp.Set("<");
     tmp.Append(src);
     tmp.Append("> ");
   }
   else if (src)
   {
     tmp.Set("*** ");
   }
   tmp.Append(text);
  }

  g_client_mutex.Enter();
  if (m_append_text.Get()[0])
    m_append_text.Append("\n");
  m_append_text.Append(tmp.Get());
  g_client_mutex.Leave();

}
开发者ID:balgarath,项目名称:wahjam,代码行数:34,代码来源:chat.cpp

示例7: DoAnalyzeItem

void DoAnalyzeItem(COMMAND_T*)
{
	WDL_TypedBuf<MediaItem*> items;
	SWS_GetSelectedMediaItems(&items);
	bool bDidWork = false;
	for (int i = 0; i < items.GetSize(); i++)
	{
		MediaItem* mi = items.Get()[i];
		int iChannels = ((PCM_source*)mi)->GetNumChannels();
		if (iChannels)
		{
			bDidWork = true;
			ANALYZE_PCM a;
			memset(&a, 0, sizeof(a));
			a.iChannels = iChannels;
			a.dPeakVals = new double[iChannels];
			a.dRMSs     = new double[iChannels];

			if (AnalyzeItem(mi, &a))
			{
				WDL_String str;
				str.Set(__LOCALIZE("Peak level:","sws_analysis"));
				for (int i = 0; i < iChannels; i++) {
					str.Append(" ");
					str.AppendFormatted(50, __LOCALIZE_VERFMT("Channel %d = %.2f dB","sws_analysis"), i+1, VAL2DB(a.dPeakVals[i]));
				}
				str.Append("\n");
				str.Append(__LOCALIZE("RMS level:","sws_analysis"));
				for (int i = 0; i < iChannels; i++) {
					str.Append(" ");
					str.AppendFormatted(50, __LOCALIZE_VERFMT("Channel %d = %.2f dB","sws_analysis"), i+1, VAL2DB(a.dRMSs[i]));
				}
				MessageBox(g_hwndParent, str.Get(), __LOCALIZE("Item analysis","sws_analysis"), MB_OK);
			}
			delete [] a.dPeakVals;
			delete [] a.dRMSs;
		}
	}
	if (!bDidWork)
	{
		MessageBox(NULL, __LOCALIZE("No items selected to analyze.","sws_analysis"), __LOCALIZE("SWS - Error","sws_analysis"), MB_OK);
		return;
	}
}
开发者ID:AusRedNeck,项目名称:sws,代码行数:44,代码来源:Analysis.cpp

示例8: handleTeamStreamMsg

void handleTeamStreamMsg(char* fullName , char* username , char* msgIn , bool isPrivate)
{
	bool isEnableTeamStream = !strcmp(msgIn + TEAMSTREAM_CHAT_TRIGGER_LEN , "enabled") ;
	WDL_String msgOut ; msgOut.Set(username) ;
	msgOut.Append((isEnableTeamStream)? " is in TeamStream mode" : " is in NinJam mode") ;
	chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;

	int userId = TeamStream::AddUser(username , fullName) ; if (userId <= USERID_LOCAL) return ;

	if (!isEnableTeamStream || !TeamStream::IsTeamStreamUsernameCollision(username))
		TeamStream::SetTeamStreamMode(userId , isEnableTeamStream) ;
	bool isFirstReply = (!TeamStream::GetNRemoteUsers()) ;
	if (isPrivate) { if (isFirstReply) TeamStream::SendLinksReqChatMsg(fullName) ; }
	else { TeamStream::SendTeamStreamChatMsg(true , fullName) ; TeamStream::SendChatColorChatMsg(true , fullName) ; }

// TODO: we could combine SendTeamStreamChatMsg() with SendChatColorChatMsg()
// TODO: in order for ID_TEAMSTREAM_LOAD/SAVE to work we need to check the current link order now
//	if (!isPrivate) and SetLink() now if match (i think this means bringing back the m_links array)
// and to be sure to remove exitting users only from the listview but keep them in the array?
}
开发者ID:bill-auger,项目名称:TeamStream,代码行数:20,代码来源:chat.cpp

示例9: while

WDL_SHM_Connection::WDL_SHM_Connection(bool whichChan,
                      const char *uniquestring, // identify 
                      int shmsize, // bytes, whoever opens first decides
                      int timeout_sec

                    )
{
  m_timeout_sec=timeout_sec;
  m_last_recvt=time(NULL)+2; // grace period
  { // make shmsize the next power of two
    int a = shmsize;
    shmsize=2;
    while (shmsize < SHM_MINSIZE || shmsize<a) shmsize*=2;
  }

  m_file=INVALID_HANDLE_VALUE;
  m_filemap=NULL;
  m_mem=NULL;
  m_events[0]=m_events[1]=NULL;

  m_whichChan=whichChan ? 1 : 0;

  char buf[512];
  GetTempPath(sizeof(buf)-4,buf);
  if (!buf[0]) lstrcpyn(buf,"C:\\",32);
  if (buf[strlen(buf)-1] != '/' && buf[strlen(buf)-1] != '\\') strcat(buf,"\\");
  m_tempfn.Set(buf);
  m_tempfn.Append("WDL_SHM_");
  m_tempfn.Append(uniquestring);
  m_tempfn.Append(".tmp");


  HANDLE mutex=NULL;

  {
    WDL_String tmp;
    tmp.Set("WDL_SHM_");
    tmp.Append(uniquestring);
    tmp.Append(".mutex");
    mutex = CreateMutex(NULL,FALSE,tmp.Get());
  }

  if (mutex) WaitForSingleObject(mutex,INFINITE);

  DeleteFile(m_tempfn.Get()); // this is designed to fail if another process has it locked

  m_file=CreateFile(m_tempfn.Get(),GENERIC_READ|GENERIC_WRITE,
        FILE_SHARE_READ|FILE_SHARE_WRITE ,
        NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_TEMPORARY,NULL);
  
  int mapsize;
  if (m_file != INVALID_HANDLE_VALUE && 
        ((mapsize=GetFileSize(m_file,NULL)) < SHM_HDRSIZE+SHM_MINSIZE*2 || 
          mapsize == 0xFFFFFFFF))
  {
    WDL_HeapBuf tmp;
    memset(tmp.Resize(shmsize*2 + SHM_HDRSIZE),0,shmsize*2 + SHM_HDRSIZE);
    ((int *)tmp.Get())[0] = shmsize;
    DWORD d;
    WriteFile(m_file,tmp.Get(),tmp.GetSize(),&d,NULL);
  }

  if (mutex) 
  {
    ReleaseMutex(mutex);
    CloseHandle(mutex);
  }

  if (m_file!=INVALID_HANDLE_VALUE)
    m_filemap=CreateFileMapping(m_file,NULL,PAGE_READWRITE,0,0,NULL);

  if (m_filemap)
  {
    m_mem=(unsigned char *)MapViewOfFile(m_filemap,FILE_MAP_WRITE,0,0,0);

    WDL_String tmp;
    if (!(GetVersion()&0x80000000)) tmp.Set("Global\\WDL_SHM_");
    else tmp.Set("WDL_SHM_");
    tmp.Append(uniquestring);
    tmp.Append(".1");
    m_events[0]=CreateEvent(NULL,false,false,tmp.Get());
    tmp.Get()[strlen(tmp.Get())-1]++; 
    m_events[1]=CreateEvent(NULL,false,false,tmp.Get());
  }
}
开发者ID:aidush,项目名称:openmpt,代码行数:85,代码来源:shm_connection.cpp

示例10: chatmsg_cb

void chatmsg_cb(int user32, NJClient *inst, char **parms, int nparms)
{
  if (!parms[0]) return;

  if (!strcmp(parms[0],"TOPIC"))
  {
    if (parms[2])
    {
      WDL_String tmp;
      if (parms[1] && *parms[1])
      {
        tmp.Set(parms[1]);
        if (parms[2][0])
        {
          tmp.Append(" sets topic to: ");
          tmp.Append(parms[2]);
        }
        else
        {
          tmp.Append(" removes topic.");
        }  
      }
      else
      {
        if (parms[2][0])
        {
          tmp.Set("Topic is: ");
          tmp.Append(parms[2]);
        }
        else tmp.Set("No topic is set.");
      }

      g_topic.Set(parms[2]);
      chat_addline("",tmp.Get());
    
    }
  }
  else if (!strcmp(parms[0],"MSG"))
  {
    if (parms[1] && parms[2])
      chat_addline(parms[1],parms[2]);
  } 
  else if (!strcmp(parms[0],"PRIVMSG"))
  {
    if (parms[1] && parms[2])
    {
      WDL_String tmp;
      tmp.Set("*");
      tmp.Append(parms[1]);
      tmp.Append("* ");
      tmp.Append(parms[2]);
      chat_addline(NULL,tmp.Get());
    }
  } 
  else if (!strcmp(parms[0],"JOIN") || !strcmp(parms[0],"PART"))
  {
    if (parms[1] && *parms[1])
    {
      WDL_String tmp(parms[1]);
      tmp.Append(" has ");
      tmp.Append(parms[0][0]=='P' ? "left" : "joined");
      tmp.Append(" the server");
      chat_addline("",tmp.Get());
    }
  } 
}
开发者ID:balgarath,项目名称:wahjam,代码行数:66,代码来源:chat.cpp

示例11: ConfigOnToken


//.........这里部分代码省略.........
    g_config_logpath.Set(lp->gettoken_str(1));    
    g_config_log_sessionlen = lp->gettoken_int(2);
  }
  else if (!stricmp(t,"SetUID"))
  {
    if (lp->getnumtokens() != 2) return -1;
    g_set_uid = lp->gettoken_int(1);
  }
  else if (!stricmp(t,"DefaultBPI"))
  {
    if (lp->getnumtokens() != 2) return -1;
    g_default_bpi=lp->gettoken_int(1);
    if (g_default_bpi<MIN_BPI) g_default_bpi=MIN_BPI;
    else if (g_default_bpi > MAX_BPI) g_default_bpi=MAX_BPI;
  }
  else if (!stricmp(t,"DefaultBPM"))
  {
    if (lp->getnumtokens() != 2) return -1;
    g_default_bpm=lp->gettoken_int(1);
    if (g_default_bpm<MIN_BPM) g_default_bpm=MIN_BPM;
    else if (g_default_bpm > MAX_BPM) g_default_bpm=MAX_BPM;
  }
  else if (!stricmp(t,"DefaultTopic"))
  {
    if (lp->getnumtokens() != 2) return -1;
    if (!m_group->m_topictext.Get()[0])
      m_group->m_topictext.Set(lp->gettoken_str(1));    
  }
  else if (!stricmp(t,"MaxChannels"))
  {
    if (lp->getnumtokens() != 2 && lp->getnumtokens() != 3) return -1;
    
    g_config_maxch_user=lp->gettoken_int(1);
    g_config_maxch_anon=lp->gettoken_int(lp->getnumtokens()>2?2:1);
  }
  else if (!stricmp(t,"SetKeepAlive"))
  {
    if (lp->getnumtokens() != 2) return -1;
    m_group->m_keepalive=lp->gettoken_int(1);
    if (m_group->m_keepalive < 0 || m_group->m_keepalive > 255)
      m_group->m_keepalive=0;
  }
  else if (!stricmp(t,"SetVotingThreshold"))
  {
    if (lp->getnumtokens() != 2) return -1;
    m_group->m_voting_threshold=lp->gettoken_int(1);
  }
  else if (!stricmp(t,"SetVotingVoteTimeout"))
  {
    if (lp->getnumtokens() != 2) return -1;
    m_group->m_voting_timeout=lp->gettoken_int(1);
  }
  else if (!stricmp(t,"ServerLicense"))
  {
    if (lp->getnumtokens() != 2) return -1;
    FILE *fp=fopen(lp->gettoken_str(1),"rt");
    if (!fp) 
    {
      printf("Error opening license file %s\n",lp->gettoken_str(1));
      if (g_logfp)
        logText("Error opening license file %s\n",lp->gettoken_str(1));
      return -2;
    }
    g_config_license.Set("");
    for (;;)
    {
      char buf[1024];
      buf[0]=0;
      fgets(buf,sizeof(buf),fp);
      if (!buf[0]) break;
      g_config_license.Append(buf);
    }

    fclose(fp);
    
  }
  else if (!stricmp(t,"ACL"))
  {
    if (lp->getnumtokens() != 3) return -1;
    int suc=0;
    char *v=lp->gettoken_str(1);
    char *t=strstr(v,"/");
    if (t)
    {
      *t++=0;
      unsigned long addr=JNL::ipstr_to_addr(v);
      if (addr != INADDR_NONE)
      {
        int maskbits=atoi(t);
        if (maskbits >= 0 && maskbits <= 32)
        {
          int flag=lp->gettoken_enum(2,"allow\0deny\0reserve\0");
          if (flag >= 0)
          {
            suc=1;
            unsigned long mask=~(0xffffffff>>maskbits);
            aclAdd(addr,mask,flag);
          }
        }
      }
开发者ID:FeodorFitsner,项目名称:libninjam,代码行数:101,代码来源:ninjamsrv.cpp

示例12: while

WDL_SHM_Connection::WDL_SHM_Connection(bool whichChan,
                      const char *uniquestring, // identify 
                      int shmsize, // bytes, whoever opens first decides
                      int timeout_sec,
                      int extra_flags // unused on win32

                    )
{
  m_timeout_cnt=0;
  m_timeout_sec=timeout_sec;
  m_last_recvt=time(NULL)+2; // grace period
  { // make shmsize the next power of two
    int a = shmsize;
    shmsize=2;
    while (shmsize < SHM_MINSIZE || shmsize<a) shmsize*=2;
  }

  m_file=INVALID_HANDLE_VALUE;
  m_filemap=NULL;
  m_mem=NULL;
  m_lockmutex=m_events[0]=m_events[1]=NULL;

  m_whichChan=whichChan ? 1 : 0;

  char buf[512];
  GetTempPath(sizeof(buf)-4,buf);
  if (!buf[0]) lstrcpyn(buf,"C:\\",32);
  if (buf[strlen(buf)-1] != '/' && buf[strlen(buf)-1] != '\\') strcat(buf,"\\");
  m_tempfn.Set(buf);
  m_tempfn.Append("WDL_SHM_");
  m_tempfn.Append(uniquestring);
  m_tempfn.Append(".tmp");

  WDL_String tmp;
  if (!(GetVersion()&0x80000000)) tmp.Set("Global\\WDL_SHM_");
  else tmp.Set("WDL_SHM_");
  tmp.Append(uniquestring);
  int tmp_l = strlen(tmp.Get());

  tmp.Append(".m");
  HANDLE mutex = CreateMutex(NULL,FALSE,tmp.Get());

  if (mutex) WaitForSingleObject(mutex,INFINITE);

  tmp.Get()[tmp_l]=0;
  tmp.Append(whichChan?".l1":".l0");
  m_lockmutex = CreateMutex(NULL,FALSE,tmp.Get());
  if (m_lockmutex)
  {
    if (WaitForSingleObject(m_lockmutex,100) == WAIT_OBJECT_0)
    {
      DeleteFile(m_tempfn.Get()); // this is designed to fail if another process has it locked

      m_file=CreateFile(m_tempfn.Get(),GENERIC_READ|GENERIC_WRITE,
                        FILE_SHARE_READ|FILE_SHARE_WRITE ,
                        NULL,whichChan ? OPEN_EXISTING : OPEN_ALWAYS,FILE_ATTRIBUTE_TEMPORARY,NULL);
    }
    else
    {
      CloseHandle(m_lockmutex);
      m_lockmutex=0;
    }
  }
  
  int mapsize;
  if (m_file != INVALID_HANDLE_VALUE && 
        ((mapsize=GetFileSize(m_file,NULL)) < SHM_HDRSIZE+SHM_MINSIZE*2 || 
          mapsize == 0xFFFFFFFF))
  {
    char buf[4096];
    memset(buf,0,sizeof(buf));
    *(int *)buf=shmsize;

    int sz=shmsize*2 + SHM_HDRSIZE;
    while (sz>0)
    {
      DWORD d;
      int a = sz;
      if (a>sizeof(buf))a=sizeof(buf);
      WriteFile(m_file,buf,a,&d,NULL);
      sz-=a;
      *(int *)buf = 0;
    }
  }

  if (m_file!=INVALID_HANDLE_VALUE)
    m_filemap=CreateFileMapping(m_file,NULL,PAGE_READWRITE,0,0,NULL);

  if (m_filemap)
  {
    m_mem=(unsigned char *)MapViewOfFile(m_filemap,FILE_MAP_WRITE,0,0,0);

    tmp.Get()[tmp_l]=0;
    tmp.Append(".1");
    m_events[0]=CreateEvent(NULL,false,false,tmp.Get());
    tmp.Get()[strlen(tmp.Get())-1]++; 
    m_events[1]=CreateEvent(NULL,false,false,tmp.Get());
  }

  if (mutex) 
//.........这里部分代码省略.........
开发者ID:M-l-M,项目名称:wdl,代码行数:101,代码来源:shm_connection.cpp

示例13: chatmsg_cb

void chatmsg_cb(int user32, NJClient *inst, char **parms, int nparms)
{
  if (!parms[0]) return;

	char* username = TeamStream::TrimUsername(parms[1]) ;	

  if (!strcmp(parms[0],"TOPIC"))
  {
    if (parms[2])
    {
      WDL_String tmp;
      if (parms[1] && *parms[1])
      {
        tmp.Set("<Server> ") ; tmp.Append(username) ;
        if (parms[2][0])
        {
          tmp.Append(" sets topic to: ");
          tmp.Append(parms[2]);
        }
        else
        {
          tmp.Append(" removes topic.");
        }  
      }
      else
      {
        if (parms[2][0])
        {
          tmp.Set("Topic is: ");
          tmp.Append(parms[2]);
        }
        else tmp.Set("No topic is set.");
      }

      g_topic.Set(parms[2]);
      chat_addline("",tmp.Get());
    
    }
  }
  else if (!strcmp(parms[0],"MSG"))
  {
		if (parms[1] && parms[2] && !parseChatTriggers(parms[1] , username , parms[2] , false))
			chat_addline(username , parms[2]) ;
  } 
  else if (!strcmp(parms[0],"PRIVMSG"))
  {
    if (parms[1] && parms[2])
    {
			if (!parseChatTriggers(parms[1] , username , parms[2] , true))
			{
				WDL_String tmp ; tmp.Set("<PM from ") ;
				tmp.Append(username) ; tmp.Append("> ") ; tmp.Append(parms[2]) ;
				chat_addline(NULL,tmp.Get());
			}
    }
  } 
  else if (!strcmp(parms[0],"JOIN") || !strcmp(parms[0],"PART"))
  {
    if (parms[1] && *parms[1])
    {
      WDL_String tmp(username) ;
      tmp.Append(" has ");
      tmp.Append(parms[0][0]=='P' ? "left" : "joined");
      tmp.Append(" the server");
      chat_addline("",tmp.Get());
    }
  } 
}
开发者ID:bill-auger,项目名称:TeamStream,代码行数:68,代码来源:chat.cpp

示例14: ReadConfig

static int ReadConfig(ServerConfig *config, char *configfile)
{
  bool comment_state=0;
  int linecnt=0;
  WDL_String linebuild;
  if (g_logfp) logText("[config] reloading configuration file\n"); // TODO move this elsewhere
  FILE *fp=strcmp(configfile,"-")?fopen(configfile,"rt"):stdin; 
  if (!fp)
  {
    printf("[config] error opening configfile '%s'\n",configfile);
    if (g_logfp) logText("[config] error opening config file (console request)\n"); // TODO move this elsewhere
    return -1;
  }

  config->allowAnonChat = true;
  config->allowAnonymous = false;
  config->allowAnonymousMulti = false;
  config->anonymousMaskIP = false;
  config->allowHiddenUsers = false;
  config->setuid = -1;
  config->defaultBPM = 120;
  config->defaultBPI = 8;
  config->port = 2049;
  config->keepAlive = 0;
  config->maxUsers = 0; // unlimited users
  config->maxchAnon = 2;
  config->maxchUser = 32;
  config->logSessionLen = 10; // ten minute default, tho the user will need to specify the path anyway
  config->votingThreshold = 110;
  config->votingTimeout = 120;
  config->logPath.Set("");
  config->pidFilename.Set("");
  config->logFilename.Set("");
  config->statusPass.Set("");
  config->statusUser.Set("");
  config->license.Set("");
  config->defaultTopic.Set("");
  config->acl.clear();

  int x;
  for(x=0; x < config->userlist.GetSize(); x++)
  {
    delete config->userlist.Get(x);
  }
  config->userlist.Empty();

  for (;;)
  {
    char buf[8192];
    buf[0]=0;
    fgets(buf,sizeof(buf),fp);
    linecnt++;
    if (!buf[0]) break;
    if (buf[strlen(buf)-1]=='\n') buf[strlen(buf)-1]=0;

    LineParser lp(comment_state);

    if (buf[0] && buf[strlen(buf)-1]=='\\')
    {
      buf[strlen(buf)-1]=0;
      linebuild.Append(buf);
      continue;
    }
    linebuild.Append(buf);

    int res=lp.parse(linebuild.Get());

    linebuild.Set("");

    if (res)
    {
      if (res==-2) 
      {
        if (g_logfp) logText("[config] warning: unterminated string parsing line %d of %s\n",linecnt,configfile);
        printf("[config] warning: unterminated string parsing line %d of %s\n",linecnt,configfile);
      }
      else 
      {
        if (g_logfp) logText("[config] warning: error parsing line %d of %s\n",linecnt,configfile);
        printf("[config] warning: error parsing line %d of %s\n",linecnt,configfile);
      }
    }
    else
    {
      comment_state = lp.InCommentBlock();

      if (lp.getnumtokens()>0)
      {
        int err = ConfigOnToken(config, &lp);
        if (err)
        {
          if (err == -1)
          {
            if (g_logfp) logText("[config] warning: wrong number of tokens on line %d of %s\n",linecnt,configfile);
            printf("[config] warning: wrong number of tokens on line %d of %s\n",linecnt,configfile);
          }
          if (err == -2)
          {
            if (g_logfp) logText("[config] warning: invalid parameter on line %d of %s\n",linecnt,configfile);
            printf("[config] warning: invalid parameter on line %d of %s\n",linecnt,configfile);
//.........这里部分代码省略.........
开发者ID:tzhuan,项目名称:wahjam,代码行数:101,代码来源:ninjamsrv.cpp


注:本文中的WDL_String::Append方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。