Example #1
0
void getInfo(int fd, rio_t client, int id){
	char buf1[MAXLINE];
	int jobID=id;
	int numBytes;
  	char * saveptr=NULL;
	Rio_readinitb( &client,fd);
	while(true){
  		numBytes = Rio_readlineb(&client, buf1, MAXLINE);
		id1 = strtok_r(buf1, " \r\n",&saveptr);
		int fileStartID=atoi(id1);
		id2 = strtok_r(buf1, " \r\n",&saveptr);
		int fileEndID=atoi(id2);

	numBytes = Rio_readlineb(c, buf, MAXLINE);
  	if(numBytes<0){
    		Close(fd);
    		return ans;
  	}
  	buf[numBytes]=0;
  	seperate(buf, &ans.pre);


	fd=Open_clientfd(ipAddress, atoi(port));

}
Example #2
0
char* name_brief( obj_clss_data* obj, int number )
{
  char*             tmp;
  const char*  singular;

  if( obj == NULL ) 
    return "## Null Pointer?? ##";

  if( number != 1 )
    return (char *) obj->Name( number );

  store_pntr = ( store_pntr+1 )%5;
  tmp        = &static_storage[store_pntr*THREE_LINES];

  singular = seperate( obj->singular, TRUE );

  switch( *obj->after ) {
   case '\0' :
    strcpy( tmp, singular );
    break;

   case '+' :
    sprintf( tmp, "%s %s", singular, &obj->after[1] );
    break;

   default :
    sprintf( tmp, "%s%s%s",
      obj->after, *obj->after == '\0' ? "" : " ", singular );
    break;
    }

  return tmp;
} 
Example #3
0
const char* obj_clss_data :: Name( int number )
{
  char*           tmp;
  const char*  plural;
  
  if( number == 1 )
    return Name( );

  tmp = static_string( );

  strcpy( tmp, number_word( number ) );

  if( prefix_plural != empty_string )
    sprintf( tmp+strlen( tmp ), " %s ", prefix_plural );

  plural = seperate( this->plural, TRUE );

  switch( *after ) {
    case '\0' :
      sprintf( tmp+strlen( tmp ), " %s", plural );
      break;

    case '+' :
      sprintf( tmp+strlen( tmp ), " %s %s", plural, &after[1] );
      break;

    default :
      sprintf( tmp+strlen( tmp ), " %s %s", after, plural );
      break;
    }

  return tmp;
} 
Example #4
0
const char* obj_clss_data :: Name( )
{
  char*             tmp;
  const char*  singular;

  tmp = static_string( );

  strcpy( tmp, is_set( extra_flags, OFLAG_THE ) ? "the " : "an " );

  if( prefix_singular != empty_string )
    sprintf( tmp+strlen( tmp ), "%s ", prefix_singular );

  singular = seperate( this->singular, TRUE );

  switch( *after ) {
    case '\0' :
      strcat( tmp, singular );
      break;

    case '+' :
      sprintf( tmp+strlen( tmp ), "%s %s", singular, &after[1] );
      break;

    default :
      sprintf( tmp+strlen( tmp ), "%s%s%s",
        after, *after == '\0' ? "" : " ", singular );
      break;
    }

  if( *tmp == 't' || isvowel( tmp[3] ) )
    return tmp;

  tmp[1] = 'a';
  return &tmp[1];
} 
Translator::Translator(const char filename[])
: dictfile(filename),
engword_elf(26, vector< vector<string> > (26)),
elfword_elf(26, vector< vector<string> > (26)),
engword_eng(26, vector< vector<string> > (26)),
elfword_eng(26, vector< vector<string> > (26))
{
    seperate();
}
Example #6
0
char* name_before( obj_clss_data* obj )
{ 
  char*             tmp;
  const char*  singular;

  if( obj == NULL ) 
    return "## Null Pointer?? ##";

  tmp = static_string( );

  strcpy( tmp, is_set( obj->extra_flags, OFLAG_THE ) ? "the " : "an " );

  if( obj->prefix_singular != empty_string )
    sprintf( tmp+strlen( tmp ), "%s ", obj->prefix_singular );

  singular = seperate( obj->singular, FALSE );

  switch( *obj->before ) {
   case '\0' :
    strcat( tmp, singular );
    break;

   case '+' :
    sprintf( tmp+strlen( tmp ), "%s %s", singular, &obj->before[1] );
    break;

   default :
    sprintf( tmp+strlen( tmp ), "%s%s%s",
      obj->before, *obj->before == '\0' ? "" : " ", singular );
    break;
    }

  if( *tmp == 't' || isvowel( tmp[3] ) )
    return tmp;

  tmp[1] = 'a';
  return &tmp[1];
} 
Example #7
0
int explain(char *buf,int acc_sock)
{
	char text[BUFSIZ];
	char aaa[BUFSIZ];
	char type[BUFSIZ];
	struct stat info;

	int length;
	char *tmp;
	char *inputstring;

	sscanf(buf,"%s%s",aaa,text);	//取得HTTP头前两个字符串
	if(strcmp(text,"/") == 0){    
		strcpy(text,"/index.html");
	}
	
	if(strcmp(aaa,"GET") == 0){       //GET方法
		
		if((tmp = strchr(text,'?')) != NULL){
			length = strlen(text) - strlen(tmp);         //对GET方法请求的参数进行解析
			strncpy(text,text,length);
			text[length] = '\0';
		}
		if(lstat(text+1,&info)== -1){
			char *head = "HTTP/1.1 404 NOT FOUND\r\n\r\n";  //请求的文件不存在
			send(acc_sock,head,strlen(head),0);
		}
		send_file(text+1,acc_sock);
	 
	}else if(strcmp(aaa,"POST") == 0){  //POST方法
		
		bzero(type,sizeof(type));
		seperate(buf,type);             //对POST方法请求的参数进行解析
		send_file2(text+1,acc_sock,type);  
	}
}
Example #8
0
obj_data* make_corpse( char_data* ch, content_array* where )
{
  obj_data*          corpse;
  obj_data*             obj;
  obj_clss_data*   obj_clss;
  thing_data*         thing;

  /* GHOSTS */

  if( ch->species != NULL && is_set( &ch->species->act_flags, ACT_GHOST ) ) {
    for( int i = ch->wearing-1; i >= 0; i-- ) {
      thing = ch->wearing[i]->From( ch->wearing[i]->number );
      thing->To( &ch->contents ); 
      }
    send_publ( ch, &ch->contents, "fades out of existence", "dropping" );
    for( int i = ch->contents.size-1; i >= 0; i-- ) {
      thing = ch->contents[i]->From( ch->contents[i]->number );
      thing->To( where );
      }
    return NULL;
    }

  /*
  if( ch->species != NULL && is_set( &ch->species->act_flags, ACT_MELT ) ) {
    if( ( obj = ch->contents ) == NULL ) {
      fsend_room( room, fragments_msg, ch, "nothing", "behind" );
      }
    else if( obj->next_content == NULL ) {
      fsend_room( room, fragments_msg, ch, obj,
        "lying on the ground" );
      }
    else {
      fsend_room( room, fragments_msg, ch, "several items",
        "on the ground" );
      }
    for( ; obj != NULL; obj = ch->contents ) {
      obj = remove( obj, obj->number );
      put_obj( obj, room );
      }
    return NULL;
    }
  */

  /* CREATE CORPSE */

  if( ch->species != NULL ) {
    if( ( obj_clss = get_obj_index( ch->species->corpse ) ) == NULL ) 
      return NULL;
    corpse = create( obj_clss );
    if( obj_clss->item_type == ITEM_CORPSE )
      corpse->value[1] = ch->species->vnum;
    }
  else {
    corpse           = create( get_obj_index( OBJ_CORPSE_PC ) );
    corpse->value[1] = ch->pcdata->pfile->ident;
    }

  /* WEIGHT */

  if( corpse->pIndexData->item_type == ITEM_CORPSE
    && corpse->pIndexData->weight == 0 )
    corpse->weight = ch->Empty_Weight( );

  /* NAME CORPSE */ 

  if( !strncmp( corpse->pIndexData->singular, "corpse of", 9 ) ) {
    char* tmp = static_string( );

    if( ch->descr->name != empty_string ) {
      sprintf( tmp, "corpse of %s", ch->descr->name );
      corpse->singular = alloc_string( tmp, MEM_OBJECT );
      sprintf( tmp, "%s corpses", ch->descr->name );
      corpse->plural = alloc_string( tmp, MEM_OBJECT );
      }
    else {
      sprintf( tmp, "corpse of %s", ch->Name( NULL ) );
      corpse->singular = alloc_string( tmp, MEM_OBJECT );
      sprintf( tmp, "%s corpses", seperate( ch->descr->singular, TRUE ) );
      corpse->plural = alloc_string( tmp, MEM_OBJECT );
      }
    }
 
  /* TRANSFER ITEMS TO CORPSE */

  for( int i = ch->wearing-1; i >= 0; i-- ) {
    if( ch->species != NULL || number_range( 0,10 ) == 0 ) {
      obj = (obj_data*) ch->wearing[i];
      obj->From( obj->number );
      obj->To( corpse );
      }
    }

  for( int i = ch->contents-1; i >= 0; i-- ) {
    if( ( obj = object( ch->contents[i] ) ) != NULL
      && ( ch->species != NULL || number_range( 0,10 ) == 0 ) ) {
      obj = (obj_data*) obj->From( obj->number );
      obj->To( corpse );
      }
    }

  corpse->To( where );

  return corpse;
}
Example #9
0
const char* obj_data :: Seen_Name( char_data* ch, int num, bool brief )
{
  char               adj  [ TWO_LINES ];
  char              plus  [ 6 ]; 
  char*           string;
  char*              tmp;
  const char*       noun;
  bool        identified  = is_set( extra_flags, OFLAG_IDENTIFIED );

  tmp  = static_string( );
  *tmp = '\0';

  get_obj_adj( adj, ch, this );

  if( num == 1 || brief ) {
    noun = seperate( singular, identified );
    }
  else {
    strcpy( tmp, number_word( num, ch ) );
    noun = seperate( plural, identified );
    }

  *plus = '\0';

  if( identified ) {
    string = after;
    if( ( pIndexData->item_type == ITEM_WEAPON
      || pIndexData->item_type == ITEM_ARMOR ) && value[0] != 0 )
      sprintf( plus, " %+d", value[0] );
    }
  else 
    string = before;

  if( num == 1 || brief ) {
    if( !brief ) {
      strcpy( tmp, is_set( pIndexData->extra_flags, OFLAG_THE )
        ? "the " : "an " );
      if( pIndexData->prefix_singular != empty_string )
        sprintf( tmp+strlen( tmp ), "%s ", pIndexData->prefix_singular );
      }
    if( *string != '+' )
      sprintf( tmp+strlen( tmp ), "%s%s%s%s%s%s",
        adj, adj[0] == '\0' ? "" : " ",
        string, ( *noun == '\0' || string[0] == '\0' ) 
        ? "" : " ", noun, plus );
    else
      sprintf( tmp+strlen( tmp ), "%s%s%s %s%s",
        adj,( *noun == '\0' || *adj == '\0' ) ? "" : " ",
        noun, &string[1], plus );
    if( num != 1 )
      sprintf( tmp+strlen( tmp ), " (x%d)", num );
    }
  else {
    if( pIndexData->prefix_plural != empty_string )
      sprintf( tmp+strlen( tmp ), " %s ", pIndexData->prefix_plural );
    else 
      strcat( tmp, " " );

    if( *string != '+' )
      sprintf( tmp+strlen( tmp ), "%s%s%s%s%s%s",
        adj, adj[0] == '\0' ? "" : " ",
        string, ( noun[0] == '\0' || string[0] == '\0' )
        ? "" : " ", noun, plus );
    else
      sprintf( tmp+strlen( tmp ), "%s%s%s %s%s",
        adj, ( *noun == '\0' || adj[0] == '\0' ) ?
        "" : " ", noun, &string[1], plus );
    }

  append_liquid( tmp, this );

  if( label != empty_string ) 
    sprintf( tmp+strlen( tmp ), " labeled %s", label );

  if( num == 1 && !brief && *tmp == 'a' && !isvowel( tmp[3] )
    && ( tmp[3] != '+' || !isvowel( tmp[4] ) ) ) {
    tmp[1] = 'a';
    return &tmp[1];
    }

  return tmp;
}