diff -i smaug14/src/interp.c smaug18/src/interp.c
8c8
<  * Tricops and Fireblade                                      |             *
---
>  * Tricops, Fireblade, Edmond, Conran                         |             *
35,36d34
< 
< 
151c149
<       if ( len == 1 && ( c == 'n' || c == 's' || c == 'e' || c == 'w' || c == 'u' || c == 'd' ) )
---
>       if ( len == 1 && ( c == 'l' || c == 'n' || c == 's' || c == 'e' || c == 'w' || c == 'u' || c == 'd' ) )
250a249
>       char *origarg = argument;
370a370,371
>                                       || ( !IS_NPC( ch ) && IS_SET( ch->pcdata->flags, PCFLAG_RETIRED )
>                                               && IS_SET( cmd->flags, CMD_FLAG_RETIRED ) )
382c383
<               if ( xIS_SET( ch->act, PLR_AFK ) && ( str_cmp( command, "AFK" ) ) )
---
>               if ( !IS_NPC( ch ) && xIS_SET( ch->act, PLR_AFK ) && ( str_cmp( command, "AFK" ) ) )
399a401
> 
404a407,422
> /* Cause people said it was spammy, even though they asked for it in the
> first place.  Whaddya gonna do? */
> /* Uncommented and checked for the same things as valid_watch to reduce
>    the spammage caused from moovement and looking */
>       if ( IS_NPC( ch ) && IS_AFFECTED( ch, AFF_POSSESS ) && valid_watch( logline ) )
>       {
>               char log_buf[MAX_STRING_LENGTH];
> 
>               if ( ch->desc && ch->desc->original && ch->short_descr )
>               {
>                       sprintf( log_buf, "%s possessed %s:  %s.", ch->desc->original->name, ch->short_descr, logline );
>                       log_string_plus( log_buf, LOG_NORMAL, 58 );
>               }
>       }
> 
> 
412c430,436
<               else if ( IS_SET( ch->pcdata->flags, PCFLAG_WATCH ) )
---
>               /*
>                * temporarily commented to test change 
>                */
>               /*
>                * else if(IS_SET(ch->pcdata->flags, PCFLAG_WATCH))
>                */
>               if ( IS_SET( ch->pcdata->flags, PCFLAG_WATCH ) )
680c704,705
<       if ( ( timer = get_timerptr( ch, TIMER_DO_FUN ) ) != NULL )
---
>       if ( ( ( timer = get_timerptr( ch, TIMER_DO_FUN ) ) != NULL )
>               && ( !found || !IS_SET( cmd->flags, CMD_FLAG_NO_ABORT ) ) )
706c731,735
<               if ( !check_skill( ch, command, argument ) && !check_social( ch, command, argument )
---
>               if ( !check_skill( ch, command, argument )
>                       && !rprog_command_trigger( ch, origarg )
>                       && !mprog_command_trigger( ch, origarg )
>                       && !oprog_command_trigger( ch, origarg )
>                       && !check_social( ch, command, argument ) && !news_cmd_hook( ch, command, argument )
801c830
< #ifdef TIMEFORMAT
---
> #ifdef sun
806c835
<               sprintf( log_buf, "[*****] LAG: %s: %s %s (R:%d S:%d.%06d)", ch->name,
---
>               sprintf( log_buf, "[*****] LAG: %s: %s %s (R:%d S:%ld.%06ld)", ch->name,
808c837
<                       ch->in_room ? ch->in_room->vnum : 0, time_used.tv_sec, time_used.tv_usec );
---
>                       ch->in_room ? ch->in_room->vnum : 0, ( long ) time_used.tv_sec, ( long ) time_used.tv_usec );
851c880
<       CHAR_DATA *victim;
---
>       CHAR_DATA *victim, *victim_next;
904c933,936
<       for ( victim = ch->in_room->first_person; victim; victim = victim->next_in_room )
---
>       /*
>        * Bug fix for ignore from Valcados 1/02 
>        */
>       for ( victim = ch->in_room->first_person; victim; victim = victim_next )
905a938
>               victim_next = victim->next_in_room;
916c949,950
<                               ch_printf( victim, "You attempt to ignore %s," " but are unable to do so.\n\r", ch->name );
---
>                               ch_printf( victim, "You attempt to ignore %s,"
>                                       " but are unable to do so.\n\r", !can_see( victim, ch ) ? "Someone" : ch->name );
960,961c994,995
<               if ( !IS_NPC( ch ) && IS_NPC( victim )
<                       && !IS_AFFECTED( victim, AFF_CHARM ) && IS_AWAKE( victim ) && !HAS_PROG( victim->pIndexData, ACT_PROG ) )
---
>               if ( !IS_NPC( ch ) && IS_NPC( victim ) && !IS_AFFECTED( victim, AFF_CHARM ) && IS_AWAKE( victim ) && !victim->desc      // This was just really annoying.. lemme do my own socials! -- Alty
>                       && !HAS_PROG( victim->pIndexData, ACT_PROG ) )
1125c1159,1160
<  * Understands quotes.  Delimiters = { ' ', '-' }
---
>  * Understands quotes.
>  * Doesn't smash case.  For use with things like password command. -- Alty
1127c1162
< char *one_argument2( char *argument, char *arg_first )
---
> char *case_argument( char *argument, char *arg_first )
1149c1184
<               if ( *argument == cEnd || *argument == '-' )
---
>               if ( *argument == cEnd )
1154c1189
<               *arg_first = LOWER( *argument );
---
>               *arg_first = *argument;
1165a1201,1242
> /*
>  * Pick off one argument from a string and return the rest.
>  * Understands quotes.  Delimiters = { ' ', '-' }
>  */
> /* Changed to fix a bug with arguments like "two-handed" - Luc 08/2000 */
> char *one_argument2( register char *argument, char *arg_first )
> {
>       int count = 0;
>       register char ch;
>       register char quote = 0;
> 
>       if ( !argument || !argument[0] )
>       {
>               arg_first[0] = '\0';
>               return argument;
>       }
>       ch = *argument;
>       while ( isspace( ch ) || ch == '-' )
>               ch = *++argument;
>       if ( ch == '\'' || ch == '"' )
>       {
>               quote = ch;
>               ch = *++argument;
>       }
>       while ( ch || ++count >= 255 )
>       {
>               if ( quote ? ch == quote : isspace( ch ) || ch == '-' )
>               {
>                       argument++;
>                       break;
>               }
>               *( arg_first++ ) = LOWER( ch );
>               ch = *++argument;
>       }
>       *arg_first = '\0';
>       ch = *argument;
>       while ( isspace( ch ) || ch == '-' )
>               ch = *++argument;
>       return argument;
> }
> 
>