PennMUSH Community

Changeset 1241

Show
Ignore:
Timestamp:
07/24/08 09:00:26 (4 months ago)
Author:
shawnw
Message:

@name deals with quotes around player names in all cases/fixes underflow

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.3/branches/devel/CHANGES.183

    r1231 r1241  
    3232 * New configure option --disable-sql to turn off checks for all supported 
    3333   SQL servers. 
     34 * @name strips out quotes around player names even if spaces in them are 
     35   disabled. 
    3436 
    3537Commands: 
  • 1.8.3/branches/devel/src/set.c

    r1150 r1241  
    6464{ 
    6565  dbref thing; 
    66   char *password; 
     66  char *eon; /* End Of Name */ 
    6767  char *myenv[10]; 
    6868  int i; 
     
    7878    /* check for renaming a player */ 
    7979    if (IsPlayer(thing)) { 
    80       if (PLAYER_NAME_SPACES) { 
    81         if (*newname == '\"') { 
    82           for (; *newname && ((*newname == '\"') 
    83                               || isspace((unsigned char) *newname)); 
    84                newname++) ; 
    85           password = newname; 
    86           while (*password && (*password != '\"')) { 
    87             while (*password && (*password != '\"')) 
    88               password++; 
    89             if (*password == '\"') { 
    90               *password++ = '\0'; 
    91               while (*password && isspace((unsigned char) *password)) 
    92                 password++; 
    93               break; 
     80      if (*newname == '"') { 
     81    for (; *newname && ((*newname == '"') 
     82                || isspace((unsigned char) *newname)); 
     83         newname++) ; 
     84    eon = newname; 
     85    while (*eon && (*eon != '"')) { 
     86      while (*eon && (*eon != '"')) 
     87        eon++; 
     88      if (*eon == '"') { 
     89        *eon++ = '\0'; 
     90        while (*eon && isspace((unsigned char) *eon)) 
     91          eon++; 
     92        break; 
    9493            } 
    9594          } 
    96         } else { 
    97           password = newname; 
    98           while (*password && !isspace((unsigned char) *password)) 
    99             password++; 
    100           if (*password) { 
    101             *password++ = '\0'; 
    102             while (*password && isspace((unsigned char) *password)) 
    103               password++; 
    104           } 
    105         } 
    10695      } else { 
    107  
    108         /* split off password */ 
    109         for (password = newname + strlen(newname) - 1; 
    110              *password && !isspace((unsigned char) *password); password--) ; 
    111         for (; *password && isspace((unsigned char) *password); password--) ; 
    112         /* eat whitespace */ 
    113         if (*password) { 
    114           *++password = '\0';   /* terminate name */ 
    115           password++; 
    116           while (*password && isspace((unsigned char) *password)) 
    117             password++; 
    118         } 
     96    eon = newname; 
     97    while (*eon && !isspace((unsigned char) *eon)) 
     98      eon++; 
     99    if (*eon)  
     100      *eon++ = '\0'; 
    119101      } 
    120102      if (!ok_player_name(newname, player, thing)) {