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)); }
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; }
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; }
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(); }
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]; }
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); } }
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; }
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; }