diff --git a/include/prototypes.h b/include/prototypes.h index 7e6986cd..112b11d0 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -417,7 +417,7 @@ extern void player_wakeup_all(natid); extern void player_wakeup(struct player *); extern void player_accept(void *); /* dispatch.c */ -extern int dispatch(s_char *, s_char *); +extern int dispatch(char *, char *); /* empdis.c */ extern int getcommand(s_char *); extern void init_player_commands(void); diff --git a/src/lib/player/dispatch.c b/src/lib/player/dispatch.c index 640d77e4..5d5454ba 100644 --- a/src/lib/player/dispatch.c +++ b/src/lib/player/dispatch.c @@ -46,8 +46,16 @@ #include "common.h" #include "server.h" +/* + * Execute command named by player->argp[0]. + * BUF is the raw command line (user text). It should have been + * passed to parse() to set up player->argp. + * If REDIR is not null, it's the command's redirection; it is user + * text. + * Return -1 if the command is not unique or doesn't exist, else 0. + */ int -dispatch(s_char *buf, s_char *redir) +dispatch(char *buf, char *redir) { struct natstr *np; struct cmndstr *command; @@ -57,11 +65,11 @@ dispatch(s_char *buf, s_char *redir) player->ncomstat, player->god); if (cmd < 0) { if (cmd == M_NOTUNIQUE) - pr("\"%s\" is ambiguous -- ", buf); + pr("Command \"%s\" is ambiguous -- ", player->argp[0]); else if (cmd == M_IGNORE) return 0; else { - pr("\"%s\" is not a legal command ", buf); + pr("\"%s\" is not a legal command ", player->argp[0]); if (player->nstat != player->ncomstat) pr("now "); pr("\n"); @@ -88,7 +96,8 @@ dispatch(s_char *buf, s_char *redir) } if (redir) { prredir(redir); - pr("%s\n", buf); + uprnf(buf); + pr("\n"); } player->command = command; switch (command->c_addr()) {