In mud.h 
After:

#define CMD_WATCH		BV02	/* FB */


Add:

#define CMD_FULLNAME		BV03	/* Commands flagged with this must be typed entirely */


in build.c
in
cmd_flags[]
at

"possessed", "polymorphed", "r1", "r2",

change the "r2" to "fullname"

(r1 should be "watch" and may by corrected in yours already)

in interp.c 
in void interpret

change:

	for ( cmd = command_hash[LOWER(command[0])%126]; cmd; cmd = cmd->next )
	    if ( !str_prefix( command, cmd->name )

into:

	for ( cmd = command_hash[LOWER(command[0])%126]; cmd; cmd = cmd->next )
	    if ( (( !IS_SET(cmd->flags, CMD_FULLNAME) && !str_prefix( command, cmd->name ) ) || ( IS_SET(cmd->flags, CMD_FULLNAME) && !str_cmp( command, cmd->name ) ) )



When finished this can be used to 'safety' commands that you do not wish to
have used on accident, or do not want people to abbreviate.

A command with the fullname flag will not be identified by interpret, unless
its been typed out fully. This removes the needs for commands such as 'reboo'
to nanny things you dont want accidentally triggered.

Its suggested any command you attach this flag to, include that info in its
helpfile so you don't get bombarded with "Why won't it work when I type it?"
bug reports.