PennMUSH Community

Changeset 513

Show
Ignore:
Timestamp:
08/16/06 02:52:05 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.8.1p1 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.1/CHANGES.181

    r511 r513  
    1212 
    1313========================================================================== 
     14 
     15Version 1.8.1 patchlevel 1                      June 27, 2005 
     16 
     17Fixes: 
     18  * Players could set the 'internal' attribute flag, which causes 
     19    confusion. Report by Cooee@PDX. 
     20  * Setting attribute flags by character alias did not work  
     21    properly. 
     22 
    1423 
    1524Version 1.8.1 patchlevel 0                      June 25, 2005 
  • 1.8.1/Patchlevel

    r511 r513  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.8.1p0 
     2This is PennMUSH 1.8.1p1 
  • 1.8.1/game/txt/hlp/pennv181.hlp

    r511 r513  
    1 & 1.8.1p0 
     1& 1.8.1p1 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.8.1 patchlevel 1                      June 27, 2005 
     15 
     16Fixes: 
     17  * Players could set the 'internal' attribute flag, which causes 
     18    confusion. Report by Cooee@PDX. 
     19  * Setting attribute flags by character alias did not work  
     20    properly. 
     21 
     22 
     23& 1.8.1p0 
    1424Version 1.8.1 patchlevel 0                      June 25, 2005 
    1525 
  • 1.8.1/game/txt/hlp/pennvOLD.hlp

    r511 r513  
    44184418type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    44194419 
    4420 1.8.1: 0 
     44201.8.1: 0, 1 
    442144211.8.0: 0, 1, 2, 3, 4, 5, 6 
    442244221.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
  • 1.8.1/hdrs/version.h

    r511 r513  
    11#define VERSION "1.8.1" 
    2 #define PATCHLEVEL "0
    3 #define PATCHDATE "[06/25/2005]" 
    4 #define NUMVERSION 1008001000 
     2#define PATCHLEVEL "1
     3#define PATCHDATE "[06/27/2005]" 
     4#define NUMVERSION 1008001001 
  • 1.8.1/src/atr_tab.c

    r511 r513  
    3535PTAB ptab_attrib; 
    3636 
    37 /** Attribute flags */ 
    38 PRIV attr_privs[] = { 
     37/** Attribute flags for setting */ 
     38PRIV attr_privs_set[] = { 
     39  {"no_command", '$', AF_NOPROG, AF_NOPROG}, 
     40  {"no_inherit", 'i', AF_PRIVATE, AF_PRIVATE}, 
     41  {"private", 'i', AF_PRIVATE, AF_PRIVATE}, 
     42  {"no_clone", 'c', AF_NOCOPY, AF_NOCOPY}, 
     43  {"wizard", 'w', AF_WIZARD, AF_WIZARD}, 
     44  {"visual", 'v', AF_VISUAL, AF_VISUAL}, 
     45  {"mortal_dark", 'm', AF_MDARK, AF_MDARK}, 
     46  {"hidden", 'm', AF_MDARK, AF_MDARK}, 
     47  {"regexp", 'R', AF_REGEXP, AF_REGEXP}, 
     48  {"case", 'C', AF_CASE, AF_CASE}, 
     49  {"locked", '+', AF_LOCKED, AF_LOCKED}, 
     50  {"safe", 'S', AF_SAFE, AF_SAFE}, 
     51  {"prefixmatch", '\0', AF_PREFIXMATCH, AF_PREFIXMATCH}, 
     52  {"veiled", 'V', AF_VEILED, AF_VEILED}, 
     53  {"debug", 'b', AF_DEBUG, AF_DEBUG}, 
     54  {"public", 'p', AF_PUBLIC, AF_PUBLIC}, 
     55  {"nearby", 'n', AF_NEARBY, AF_NEARBY}, 
     56  {"noname", 'N', AF_NONAME, AF_NONAME}, 
     57  {"nospace", 's', AF_NOSPACE, AF_NOSPACE}, 
     58  {NULL, '\0', 0, 0} 
     59}; 
     60 
     61/** Attribute flags for viewing */ 
     62PRIV attr_privs_view[] = { 
    3963  {"no_command", '$', AF_NOPROG, AF_NOPROG}, 
    4064  {"no_inherit", 'i', AF_PRIVATE, AF_PRIVATE}, 
     
    158182  } 
    159183  if (strcasecmp(perms, "none")) { 
    160     flags = string_to_privs(attr_privs, perms, 0); 
     184    flags = string_to_privs(attr_privs_set, perms, 0); 
    161185    if (!flags) { 
    162186      notify(player, T("I don't understand those permissions.")); 
     
    213237 
    214238  notify_format(player, T("%s -- Attribute permissions now: %s"), name, 
    215         privs_to_string(attr_privs, flags)); 
     239        privs_to_string(attr_privs_view, flags)); 
    216240} 
    217241 
     
    326350  notify_format(player, "Attribute: %s", AL_NAME(ap)); 
    327351  notify_format(player, 
    328         "    Flags: %s", privs_to_string(attr_privs, AL_FLAGS(ap))); 
     352        "    Flags: %s", privs_to_string(attr_privs_view, 
     353                         AL_FLAGS(ap))); 
    329354  notify_format(player, "  Creator: %s", unparse_dbref(AL_CREATOR(ap))); 
    330355  return; 
  • 1.8.1/src/attrib.c

    r511 r513  
    3737StrTree atr_names; 
    3838/** Table of attribute flags. */ 
    39 extern PRIV attr_privs[]; 
     39extern PRIV attr_privs_set[]; 
     40extern PRIV attr_privs_view[]; 
    4041 
    4142/** A flag to show if we're in the middle of a @wipe (this changes 
     
    205206{ 
    206207  int f; 
    207   f = string_to_privs(attr_privs, p, 0); 
     208  f = string_to_privs(attr_privs_set, p, 0); 
    208209  if (!f) 
    209210    return -1; 
     
    212213  if (!See_All(player) && (f & AF_WIZARD)) 
    213214    return -1; 
     215  f &= ~AF_INTERNAL; 
    214216  return f; 
    215217} 
     
    230232  int f; 
    231233  *setbits = *clrbits = 0; 
    232   f = string_to_privsets(attr_privs, p, setbits, clrbits); 
     234  f = string_to_privsets(attr_privs_set, p, setbits, clrbits); 
    233235  if (f <= 0) 
    234236    return -1; 
     
    237239  if (!See_All(player) && ((*setbits & AF_WIZARD) || (*clrbits & AF_WIZARD))) 
    238240    return -1; 
     241  f &= ~AF_INTERNAL; 
    239242  return *setbits; 
    240243} 
     
    248251atrflag_to_string(int mask) 
    249252{ 
    250   return privs_to_string(attr_privs, mask); 
     253  return privs_to_string(attr_privs_view, mask); 
    251254} 
    252255 
  • 1.8.1/src/db.c

    r511 r513  
    11881188} 
    11891189 
    1190 extern PRIV attr_privs[]; 
     1190extern PRIV attr_privs_view[]; 
    11911191 
    11921192/** Read an attribute list for an object from a file 
     
    12121212    db_read_this_labeled_dbref(f, "owner", &owner); 
    12131213    db_read_this_labeled_string(f, "flags", &tmp); 
    1214     flags = string_to_privs(attr_privs, tmp, 0); 
     1214    flags = string_to_privs(attr_privs_view, tmp, 0); 
    12151215    db_read_this_labeled_number(f, "derefs", &derefs); 
    12161216    db_read_this_labeled_string(f, "value", &tmp); 
  • 1.8.1/src/fundb.c

    r511 r513  
    3232#endif 
    3333 
    34 extern PRIV attr_privs[]; 
     34extern PRIV attr_privs_view[]; 
    3535static lock_type get_locktype(char *str); 
    3636extern struct db_stat_info *get_stats(dbref owner); 
     
    469469      return; 
    470470    } 
    471     safe_str(privs_to_letters(attr_privs, AL_FLAGS(a)), buff, bp); 
     471    safe_str(privs_to_letters(attr_privs_view, AL_FLAGS(a)), buff, bp); 
    472472    if (atr_sub_branch(a)) 
    473473      safe_chr('`', buff, bp); 
     
    502502      return; 
    503503    } 
    504     safe_str(privs_to_string(attr_privs, AL_FLAGS(a)), buff, bp); 
     504    safe_str(privs_to_string(attr_privs_view, AL_FLAGS(a)), buff, bp); 
    505505  } else { 
    506506    /* Object flags, visible to all */ 
  • 1.8.1/src/look.c

    r511 r513  
    5252static char *parent_chain(dbref player, dbref thing); 
    5353 
    54 extern PRIV attr_privs[]; 
     54extern PRIV attr_privs_view[]; 
    5555 
    5656static void 
     
    317317  if (parent == thing || !GoodObject(parent)) 
    318318    parent = NOTHING; 
    319   strcpy(fbuf, privs_to_letters(attr_privs, AL_FLAGS(atr))); 
     319  strcpy(fbuf, privs_to_letters(attr_privs_view, AL_FLAGS(atr))); 
    320320  if (atr_sub_branch(atr)) 
    321321    strcat(fbuf, "`"); 
     
    379379  if (parent == thing || !GoodObject(parent)) 
    380380    parent = NOTHING; 
    381   strcpy(fbuf, privs_to_letters(attr_privs, AL_FLAGS(atr))); 
     381  strcpy(fbuf, privs_to_letters(attr_privs_view, AL_FLAGS(atr))); 
    382382  if (atr_sub_branch(atr)) 
    383383    strcat(fbuf, "`"); 
     
    14791479      int npmflags = AL_FLAGS(ptr) & (~AF_PREFIXMATCH); 
    14801480      if (AL_FLAGS(atr) != AL_FLAGS(ptr) && AL_FLAGS(atr) != npmflags) 
    1481     privs = privs_to_string(attr_privs, AL_FLAGS(atr)); 
     1481    privs = privs_to_string(attr_privs_view, AL_FLAGS(atr)); 
    14821482    } else { 
    1483       privs = privs_to_string(attr_privs, AL_FLAGS(atr)); 
     1483      privs = privs_to_string(attr_privs_view, AL_FLAGS(atr)); 
    14841484    } 
    14851485    if (privs && *privs) 
  • 1.8.1/src/predicat.c

    r511 r513  
    4848void do_grep(dbref player, char *obj, char *lookfor, int flag, int insensitive); 
    4949static int pay_quota(dbref, int); 
    50 extern PRIV attr_privs[]; 
     50extern PRIV attr_privs_view[]; 
    5151 
    5252/** A generic function to generate a formatted string. The 
     
    13441344          ANSI_HILITE, AL_NAME(atr), 
    13451345          Owner(AL_CREATOR(atr)), 
    1346           privs_to_letters(attr_privs, AL_FLAGS(atr)), 
     1346          privs_to_letters(attr_privs_view, AL_FLAGS(atr)), 
    13471347          ANSI_NORMAL, tbuf1); 
    13481348  return found; 
  • 1.8.1/src/privtab.c

    r511 r513  
    3535  long int yes = 0; 
    3636  long int no = 0; 
     37  long int ltr = 0; 
    3738  char *p, *r; 
    3839  char tbuf1[BUFFER_LEN]; 
     
    5253    continue; 
    5354    } 
    54     for (c = table; c->name; c++) { 
    55       if (string_prefix(c->name, p)) { 
    56     if (not) 
    57       no |= c->bits_to_set; 
    58     else 
    59       yes |= c->bits_to_set; 
    60     break; 
     55    ltr = 0; 
     56    if (strlen(p) == 1) { 
     57      /* One-letter string is treated as a character if possible */ 
     58      ltr = letter_to_privs(table, p, 0); 
     59      if (not) 
     60    no |= ltr; 
     61      else 
     62    yes |= ltr; 
     63    } 
     64    /* If we didn't handle a one-char string as a character, 
     65     * or if the string is longer than one char, use prefix-matching 
     66     */ 
     67    if (!ltr) { 
     68      for (c = table; c->name; c++) { 
     69    if (string_prefix(c->name, p)) { 
     70      if (not) 
     71        no |= c->bits_to_set; 
     72      else 
     73        yes |= c->bits_to_set; 
     74      break; 
     75    } 
    6176      } 
    6277    } 
     
    86101  char tbuf1[BUFFER_LEN]; 
    87102  int not; 
     103  long int ltr; 
    88104  int words = 0; 
    89105  int err = 0; 
     
    105121      } 
    106122    } 
    107     for (c = table; c->name; c++) { 
    108       if (string_prefix(c->name, p)) { 
    109     found++; 
    110     if (not) 
    111       *clrprivs |= c->bits_to_set; 
    112     else 
    113       *setprivs |= c->bits_to_set; 
    114     break; 
     123    ltr = 0; 
     124    if (strlen(p) == 1) { 
     125      /* One-letter string is treated as a character if possible */ 
     126      ltr = letter_to_privs(table, p, 0); 
     127      if (not) 
     128    *clrprivs |= ltr; 
     129      else 
     130    *setprivs |= ltr; 
     131    } 
     132    if (ltr) { 
     133      found++; 
     134    } else { 
     135      for (c = table; c->name; c++) { 
     136    if (string_prefix(c->name, p)) { 
     137      found++; 
     138      if (not) 
     139        *clrprivs |= c->bits_to_set; 
     140      else 
     141        *setprivs |= c->bits_to_set; 
     142      break; 
     143    } 
    115144      } 
    116145    }