void
CMLineAddressTable::SetExecutionPoint
	(
	const JIndex lineIndex
	)
{
	const JString addr = BuildAddress(*(itsLineTextList->GetElement(lineIndex)));
	GetLink()->SetExecutionPoint(addr);
}
void
CMLineAddressTable::RunUntil
	(
	const JIndex lineIndex
	)
{
	const JString addr = BuildAddress(*(itsLineTextList->GetElement(lineIndex)));
	GetLink()->RunUntil(addr);
}
void
CMLineAddressTable::RemoveAllBreakpointsOnLine
	(
	const JIndex lineIndex
	)
{
	const JString addr = BuildAddress(*(itsLineTextList->GetElement(lineIndex)));
	GetLink()->RemoveAllBreakpointsAtAddress(addr);
}
void
CMLineAddressTable::SetBreakpoint
	(
	const JIndex	lineIndex,
	const JBoolean	temporary
	)
{
	const JString addr = BuildAddress(*(itsLineTextList->GetElement(lineIndex)));
	GetLink()->SetBreakpoint(addr, temporary);
}
JBoolean
CMLineAddressTable::GetFirstBreakpointOnLine
	(
	const JIndex	lineIndex,
	JIndex*			bpIndex
	)
	const
{
	const JString addr = BuildAddress(*(itsLineTextList->GetElement(lineIndex)));
	CMBreakpoint bp(addr);
	return GetBreakpointList()->SearchSorted(&bp, JOrderedSetT::kFirstMatch, bpIndex);
}
示例#6
0
文件: i_net.cpp 项目: 1Akula1/gzdoom
void JoinGame (int i)
{
	if ((i == Args->NumArgs() - 1) ||
		(Args->GetArg(i+1)[0] == '-') ||
		(Args->GetArg(i+1)[0] == '+'))
		I_FatalError ("You need to specify the host machine's address");

	StartNetwork (true);

	// Host is always node 1
	BuildAddress (&sendaddress[1], Args->GetArg(i+1));
	sendplayer[1] = 0;
	doomcom.numnodes = 2;

	atterm (SendAbort);

	// Let host know we are here
	StartScreen->NetInit ("Contacting host", 0);

	if (!StartScreen->NetLoop (Guest_ContactHost, NULL))
	{
		exit (0);
	}

	// Wait for everyone else to connect
	if (!StartScreen->NetLoop (Guest_WaitForOthers, 0))
	{
		exit (0);
	}

	popterm ();

	StartScreen->NetMessage ("Total players: %d", doomcom.numnodes);

	doomcom.id = DOOMCOM_ID;
	doomcom.numplayers = doomcom.numnodes;
}
示例#7
0
/// InsertAddressTreeNode() rec
static void InsertAddressTreeNode(Object *obj, Object *addrObj, struct MUI_NListtree_TreeNode *tn, int i)
{
  struct ABookNode *ab = (struct ABookNode *)(tn->tn_User);
  char address[SIZE_LARGE];

  ENTER();

  switch(ab->type)
  {
    case ABNT_USER:
    {
      // build the address by using the real name and mail address
      BuildAddress(address, sizeof(address), ab->Address, ab->RealName);

      // if we have already inserted an address before we have to seperate them via ", "
      if(i > 0)
        DoMethod(obj, MUIM_TextEditor_InsertText, ", ", MUIV_TextEditor_InsertText_Cursor);

      // insert the address
      DoMethod(obj, MUIM_TextEditor_InsertText, address, MUIV_TextEditor_InsertText_Cursor);
    }
    break;

    case ABNT_LIST:
    {
      char *ptr;

      for(ptr = ab->ListMembers; *ptr != '\0'; ptr++, i++)
      {
        char *nptr;

        if((nptr = strchr(ptr, '\n')) != NULL)
          *nptr = '\0';
        else
          break;

        // if we have already inserted an address before we have to seperate them via ", "
        if(i > 0)
          DoMethod(obj, MUIM_TextEditor_InsertText, ", ", MUIV_TextEditor_InsertText_Cursor);

        // insert the address
        DoMethod(obj, MUIM_TextEditor_InsertText, ptr, MUIV_TextEditor_InsertText_Cursor);

        *nptr = '\n';
        ptr = nptr;
      }
    }
    break;

    case ABNT_GROUP:
    {
      ULONG pos = MUIV_NListtree_GetEntry_Position_Head;
      do
      {
        tn = (struct MUI_NListtree_TreeNode *)DoMethod(addrObj, MUIM_NListtree_GetEntry, tn, pos, MUIV_NListtree_GetEntry_Flag_SameLevel);
        if(tn == NULL)
          break;

        InsertAddressTreeNode(obj, addrObj, tn, i);

        pos = MUIV_NListtree_GetEntry_Position_Next;
        i++;
      }
      while(TRUE);
    }
    break;
  }

  LEAVE();
}
示例#8
0
int main(int argc, char** argv)
{
  int sock = BuildSocket();
  struct sockaddr_in addr = BuildAddress();
  Receive(addr, sock);
}
示例#9
0
文件: mailinfo.c 项目: blmara/yam
void rx_mailinfo(UNUSED struct RexxHost *host, struct RexxParams *params, enum RexxAction action, UNUSED struct RexxMsg *rexxmsg)
{
  struct args *args = params->args;
  struct results *results = params->results;
  struct optional *optional = params->optional;

  ENTER();

  switch(action)
  {
    case RXIF_INIT:
    {
      params->args = AllocVecPooled(G->SharedMemPool, sizeof(*args));
      params->results = AllocVecPooled(G->SharedMemPool, sizeof(*results));
      params->optional = AllocVecPooled(G->SharedMemPool, sizeof(*optional));
      if(params->optional == NULL)
        params->rc = RETURN_ERROR;
    }
    break;

    case RXIF_ACTION:
    {
      struct Mail *mail = NULL;
      struct Folder *folder = NULL;

      if(args->index != NULL)
      {
        Object *lv = (Object *)xget(G->MA->GUI.PG_MAILLIST, MUIA_MainMailListGroup_MainList);

        optional->active = args->index[0];
        DoMethod(lv, MUIM_NList_GetEntry, optional->active, &mail);
        if(mail != NULL)
          folder = mail->Folder;
      }
      else
        mail = MA_GetActiveMail(NULL, &folder, (APTR)&optional->active);

      if(mail != NULL)
      {
        struct ExtendedMail *email;

        if((email = MA_ExamineMail(folder, mail->MailFile, TRUE)) != NULL)
        {
          int pf = getPERValue(mail);
          int vf = getVOLValue(mail);
          int i;

          GetMailFile(optional->filename, sizeof(optional->filename), NULL, mail);
          results->filename = optional->filename;
          results->index = &optional->active;

          if(hasStatusError(mail))
            results->status = "E"; // Error status
          else if(mail->Folder != NULL && isOutgoingFolder(mail->Folder))
            results->status = "W"; // Queued (WaitForSend) status
          else if(mail->Folder != NULL && isDraftsFolder(mail->Folder))
            results->status = "H"; // Hold status
          else if(hasStatusSent(mail))
            results->status = "S"; // Sent status
          else if(hasStatusReplied(mail))
            results->status = "R"; // Replied status
          else if(hasStatusForwarded(mail))
            results->status = "F"; // Forwarded status
          else if(!hasStatusRead(mail))
          {
            if(hasStatusNew(mail))
              results->status = "N"; // New status
            else
              results->status = "U"; // Unread status
          }
          else if(!hasStatusNew(mail))
            results->status = "O"; // Old status

          if((results->fromall = calloc(email->NumSFrom+2, sizeof(char *))) != NULL)
          {
            if((results->fromall[0] = strdup(BuildAddress(optional->address, sizeof(optional->address), mail->From.Address, mail->From.RealName))) == NULL)
              params->rc = RETURN_ERROR;

            for(i = 0; i < email->NumSFrom; i++)
            {
              if((results->fromall[i+1] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->SFrom[i].Address, email->SFrom[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->from = results->fromall[0];
          }
          else
            params->rc = RETURN_ERROR;

          if((results->toall = calloc(email->NumSTo+2, sizeof(char *))) != NULL)
          {
            if((results->toall[0] = strdup(BuildAddress(optional->address, sizeof(optional->address), mail->To.Address, mail->To.RealName))) == NULL)
              params->rc = RETURN_ERROR;

            for(i = 0; i < email->NumSTo; i++)
            {
              if((results->toall[i+1] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->STo[i].Address, email->STo[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->to = results->toall[0];
          }
          else
            params->rc = RETURN_ERROR;

          if((results->replytoall = calloc(email->NumSReplyTo+2, sizeof(char *))) != NULL)
          {
            if((results->replytoall[0] = strdup(BuildAddress(optional->address, sizeof(optional->address), mail->ReplyTo.Address[0] != '\0' ? mail->ReplyTo.Address : mail->From.Address, mail->ReplyTo.Address[0] != '\0' ? mail->ReplyTo.RealName : mail->From.RealName))) == NULL)
              params->rc = RETURN_ERROR;

            for(i = 0; i < email->NumSReplyTo; i++)
            {
              if((results->replytoall[i+1] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->SReplyTo[i].Address, email->SReplyTo[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->replyto = results->replytoall[0];
          }
          else
            params->rc = RETURN_ERROR;

          if((results->ccall = calloc(email->NumCC+1, sizeof(char *))) != NULL)
          {
            for(i = 0; i < email->NumCC; i++)
            {
              if((results->ccall[i] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->CC[i].Address, email->CC[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->cc = results->ccall[0];
          }
          else
            params->rc = RETURN_ERROR;

          if((results->bccall = calloc(email->NumBCC+1, sizeof(char *))) != NULL)
          {
            for(i = 0; i < email->NumBCC; i++)
            {
              if((results->bccall[i] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->BCC[i].Address, email->BCC[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->bcc = results->bccall[0];
          }
          else
            params->rc = RETURN_ERROR;

          if((results->resenttoall = calloc(email->NumResentTo+1, sizeof(char *))) != NULL)
          {
            for(i = 0; i < email->NumResentTo; i++)
            {
              if((results->resenttoall[i] = strdup(BuildAddress(optional->address, sizeof(optional->address), email->ResentTo[i].Address, email->ResentTo[i].RealName))) == NULL)
                params->rc = RETURN_ERROR;
            }
            results->resentto = results->resenttoall[0];
          }
          else
            params->rc = RETURN_ERROR;

          optional->size = mail->Size;

          DateStamp2String(optional->date, sizeof(optional->date), &mail->Date, DSS_USDATETIME, TZC_UTC2LOCAL);
          results->date = optional->date;
          results->subject = strdup(mail->Subject);
          results->size = &optional->size;
          results->msgid = email->messageID != NULL ? strdup(email->messageID) : NULL;
          snprintf(optional->flags, sizeof(optional->flags), "%c%c%c%c%c-%c%c%c",
                    isMultiRCPTMail(mail) ? 'M' : '-',
                    isMP_MixedMail(mail)  ? 'A' : '-',
                    isMP_ReportMail(mail) ? 'R' : '-',
                    isMP_CryptedMail(mail)? 'C' : '-',
                    isMP_SignedMail(mail) ? 'S' : '-',
                    pf ? pf+'0' : '-',
                    vf ? vf+'0' : '-',
                    hasStatusMarked(mail) ? 'M' : '-'
                 );
          results->flags = optional->flags;

          MA_FreeEMailStruct(email);
        }
        else
          params->rc = RETURN_ERROR;
      }
      else
        params->rc = RETURN_ERROR;
    }
    break;

    case RXIF_FREE:
    {
      if(args != NULL)
        FreeVecPooled(G->SharedMemPool, args);
      if(results != NULL)
      {
        FreeStrArray(results->fromall);
        FreeStrArray(results->toall);
        FreeStrArray(results->replytoall);
        FreeStrArray(results->ccall);
        FreeStrArray(results->bccall);
        FreeStrArray(results->resenttoall);
        free(results->subject);
        free(results->msgid);
        FreeVecPooled(G->SharedMemPool, results);
      }
      if(optional != NULL)
        FreeVecPooled(G->SharedMemPool, optional);
    }
    break;
  }

  LEAVE();
}