示例#1
0
static const char *generate2(const imc_packet * p)
{
  char *temp;
  char newpath[IMC_PATH_LENGTH];

  if (!p->type[0] || !p->i.from[0] || !p->i.to[0])
  {
    imc_logerror("BUG: generate2: bad packet!");
    imc_logerror("type: %s from: %s to: %s",p->type,p->i.from,p->i.to);
    imc_logerror("path: %s data:",p->i.path,printkeys(&p->data));
    return NULL;		/* catch bad packets here */
  }

  if (!p->i.path[0])
    strcpy(newpath, imc_name);
  else
    sprintf(newpath, "%s!%s", p->i.path, imc_name);

  temp=imc_getsbuf(IMC_PACKET_LENGTH);
  sprintf(temp, "%s %lu %s %s %s %s",
	  p->i.from, p->i.sequence, newpath, p->type, p->i.to,
	  printkeys(&p->data));
  imc_shrinksbuf(temp);
  return temp;
}
int main(int argc, char* argv[])
{
  struct node *ptr1, *ptr2;
  listinitialize();
  ptr1 = insertafter(1, head);
  ptr2 = insertafter(2, ptr1);
  ptr1 = insertafter(3, ptr2);
  printkeys(); printf("\n");
  exchange(head, ptr2);
  printkeys(); printf("\n");
  movenexttofront(ptr2);
  printkeys(); printf("\n");
  deletenext(head);
  printkeys();
  return 0;
}