Nicolas Weeger wrote: > Hello. > > Here's a small patch to tweak the 'tell' command. > You can now enter the first letters of the name only, provided there is > only one matching player. > IE if you have 'playerA', 'playerB' and 'human', you can do 'tell h hello'. > But you'll have to use 'tell playera hello' since 'player' can be 2 > players. > > Note: not case sensitive. > > If I don't have any negative feedback, I'll commit it in 1 or 2 weeks... Few notes: If you post diffs, please make context diffs (diff -c) as they are more readable when it comes to trying to find changes. Note 2: strnicmp does not appear to be a standard library function, so such a change does not appear that it will work on any unix type systems. > > Nicolas 'Ryo' > > (note: patch directly in mail, since it isn't that big) > > > Index: include/sproto.h > =================================================================== > RCS file: /cvsroot/crossfire/crossfire/include/sproto.h,v > retrieving revision 1.96 > diff -r1.96 sproto.h > 476c476,477 > < player *find_player(char *plname); > --- > > player *find_player(char *plname); > > player* find_player_partial_name( char* plname ); > Index: server/c_chat.c > =================================================================== > RCS file: /cvsroot/crossfire/crossfire/server/c_chat.c,v > retrieving revision 1.15 > diff -r1.15 c_chat.c > 149,152c149,153 > < > < for(pl=first_player;pl!=NULL;pl=pl->next) > < if(strncasecmp(pl->ob->name,name,MAX_NAME)==0) { > < > --- > > > > pl = find_player_partial_name( name ); > > > > if ( pl ) > > { > 155c156 > < "You tell %s: %s", name, msg); > --- > > "You tell %s: %s", pl->ob->name, msg); > 159,161c160,163 > < return 1; > < } > < new_draw_info(NDI_UNIQUE, 0,op,"No such player."); > --- > > return 1; > > } > > > > new_draw_info(NDI_UNIQUE, 0,op,"No such player or ambiguous name."); > Index: server/player.c > =================================================================== > RCS file: /cvsroot/crossfire/crossfire/server/player.c,v > retrieving revision 1.137 > diff -r1.137 player.c > 52c52,73 > < } > --- > > } > > > > player* find_player_partial_name( char* plname ) > > { > > player* pl; > > player* found = NULL; > > size_t namelen = strlen( plname ); > > for ( pl = first_player; pl != NULL; pl = pl->next ) > > { > > if ( strlen( pl->ob->name ) < namelen ) > > continue; > > > > if ( !strnicmp( pl->ob->name, plname, namelen ) ) > > { > > if ( found ) > > return NULL; > > > > found = pl; > > } > > } > > return found; > > } > > > _______________________________________________ > crossfire-devel mailing list > crossfire-devel at lists.real-time.com > https://mailman.real-time.com/mailman/listinfo/crossfire-devel _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel