PennMUSH Community

Changeset 1100

Show
Ignore:
Timestamp:
08/27/07 15:29:44 (1 year ago)
Author:
shawnw
Message:

1.8.2p7

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.2/trunk/CHANGES.182

    r1093 r1100  
    1414========================================================================== 
    1515 
    16 Version 1.8.2 patchlevel 7                       ????  ??, 2007 
    17  
    18 Fixes: 
    19   * Clarified the behavior of eval() and get_eval() in help. 
    20     Suggested by Talvo and Javelin. 
    21   * A failed db save no longer broadcasts a success message 
    22     in addition to a failure one. Reported by Cooee. 
    23   * The open database file wasn't getting closed on a failed 
    24     save. 
     16 
     17Minor changes: 
     18  * nwho() now takes an optional viewer argument like lwho(). 
     19 
     20Fixes: 
     21  * Clarified the behavior of eval() and get_eval() in help. Suggested by 
     22    Talvo and Javelin. 
     23  * A failed db save no longer broadcasts a success message in addition to a 
     24    failure one. Reported by Cooee. 
     25  * The open database file wasn't getting closed on a failed save. 
    2526  * Crash bug in sortkey(). Fix by Nathan Baum. 
    2627  * 'help @desc' brings up @describe instead of @descformat. 
     
    4445Fixes: 
    4546  * Fixed assorted small memory leaks. [SW] 
     47  * Fix to fraction() when dealing with numbers that can't 
     48    be fractioned. Discovered by Ashen-Shugar. [GM] 
    4649  * Fixed handling of telnet NOPs sent by clients. [SW] 
    4750  * The OpenSSL random number pool wasn't getting adequately 
  • 1.8.2/trunk/Patchlevel

    r1027 r1100  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.8.2p6 
     2This is PennMUSH 1.8.2p7 
  • 1.8.2/trunk/game/txt/hlp/pennfunc.hlp

    r925 r1100  
    11701170  get_eval(<object>/<attribute>) 
    11711171  
    1172   Eval() works the same way as xget(), except that it performs %-substitutions 
    1173   and function evaluation on the attribute before returning the value. eval() 
    1174   does not modify the stack (%0-%9), so the attribute being evaled sees the 
    1175   same values for them that the calling code does. Unless you need this behavior, 
    1176   it is better to use u() instead, which hides the caller's stack. 
     1172  Eval() works the same way as xget(), except that it performs 
     1173  %-substitutions and function evaluation on the attribute before 
     1174  returning the value. eval() changes the enactor (%#) to the object 
     1175  executing the eval (%!). It does not modify the stack (%0-%9), so 
     1176  the attribute being evaled sees the same values for them that the 
     1177  calling code does. Unless you need this behavior, it is better to 
     1178  use u() instead, which hides the caller's stack. 
    11771179 
    11781180    Example: 
     
    27192721  will have this dbref. 
    27202722 
    2721 & NMWHO() 
    2722   nmwho() 
    2723  
    2724   This returns a count of all currently connected, non-hidden players. 
    2725   It's exactly the same as nwho() used by a mortal, and is suitable 
    2726   for use on privileged global objects who need an unprivileged count 
    2727   of who's online. 
    2728  
    2729 See also: nwho(), mwho(), xmwho() 
    27302723& NOR() 
    27312724  nor(<boolean>[, ... , <booleanN>]) 
     
    27962789 
    27972790See also: ncon(), nexits(), xthings(), lthings(), lvthings() 
     2791& NMWHO() 
    27982792& NWHO() 
    27992793  nwho() 
    2800  
    2801   This returns a count of all currently-connected players. When 
     2794  nwho(<viewer>) 
     2795  nmwho() 
     2796 
     2797  nwho() returns a count of all currently-connected players. When 
    28022798  mortals use this function, DARK wizards or royalty are NOT counted. 
    28032799 
    2804 See also: lwho(), nmwho(), xwho() 
     2800  nmwho() returns a count of all currently connected, non-hidden players. 
     2801  It's exactly the same as nwho() used by a mortal, and is suitable 
     2802  for use on privileged global objects that always need an unprivileged 
     2803  count of who is online. 
     2804 
     2805  If nwho() is given an argument, and is used by an object that can see 
     2806  DARK and Hidden players, nwho() returns the count of online players 
     2807  based on what <viewer> can see. 
     2808 
     2809See also: lwho(), mwho(), xwho(), xmwho() 
    28052810& OBJ() 
    28062811  obj(<object>) 
  • 1.8.2/trunk/game/txt/hlp/pennv182.hlp

    r1027 r1100  
    1 & 1.8.2p6 
     1& 1.8.2p7 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.8.2 patchlevel 7                       Aug  27, 2007 
     15 
     16Minor changes: 
     17  * nwho() now takes an optional viewer argument like lwho(). 
     18 
     19Fixes: 
     20  * Clarified the behavior of eval() and get_eval() in help. Suggested by 
     21    Talvo and Javelin. 
     22  * A failed db save no longer broadcasts a success message in addition to a 
     23    failure one. Reported by Cooee. 
     24  * The open database file wasn't getting closed on a failed save. 
     25  * Crash bug in sortkey(). Fix by Nathan Baum. 
     26  * 'help @desc' brings up @describe instead of @descformat. 
     27    Suggested by Nymeria. 
     28  * Removed mention of Win32 requiring a particular attribute 
     29    compression algorithm. Any will work, and always have. 
     30    Reported by Andrew Klein. 
     31 
     32& 1.8.2p6 
    1433Version 1.8.2 patchlevel 6                       July 9, 2007 
    1534 
     
    2645Fixes: 
    2746  * Fixed assorted small memory leaks. [SW] 
     47  * Fix to fraction() when dealing with numbers that can't 
     48    be fractioned. Discovered by Ashen-Shugar. [GM] 
    2849  * Fixed handling of telnet NOPs sent by clients. [SW] 
    2950  * The OpenSSL random number pool wasn't getting adequately 
  • 1.8.2/trunk/game/txt/hlp/pennvOLD.hlp

    r1027 r1100  
    44184418type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    44194419 
    4420 1.8.2: 0, 1, 2, 3, 4, 5, 6 
     44201.8.2: 0, 1, 2, 3, 4, 5, 6, 7 
    442144211.8.1: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 
    442244221.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 
  • 1.8.2/trunk/hdrs/version.h

    r1027 r1100  
    11#define VERSION "1.8.2" 
    2 #define PATCHLEVEL "6
    3 #define PATCHDATE "[07/09/2007]" 
    4 #define NUMVERSION 1008002006 
     2#define PATCHLEVEL "7
     3#define PATCHDATE "[08/27/2007]" 
     4#define NUMVERSION 1008002007 
  • 1.8.2/trunk/src/bsd.c

    r1027 r1100  
    38523852{ 
    38533853  DESC *d; 
     3854  dbref victim; 
    38543855  int count = 0; 
    3855   int powered = (*(called_as + 1) != 'M'); 
     3856  int powered = ((*(called_as + 1) != 'M') && Priv_Who(executor)); 
     3857 
     3858  if (nargs && args[0] && *args[0]) { 
     3859    /* An argument was given. Find the victim and choose the lowest 
     3860     * perms possible */ 
     3861    if (!powered) { 
     3862      safe_str(T(e_perm), buff, bp); 
     3863      return; 
     3864    } 
     3865    if ((victim = noisy_match_result(executor, args[0], NOTYPE, 
     3866                                     MAT_EVERYTHING)) == 0) { 
     3867      safe_str(T(e_notvis), buff, bp); 
     3868      return; 
     3869    } 
     3870    if (!Priv_Who(victim)) 
     3871      powered = 0; 
     3872  } 
    38563873 
    38573874  DESC_ITER_CONN(d) { 
    3858     if (!Hidden(d) || (powered && Priv_Who(executor))) { 
     3875    if (!Hidden(d) || powered) { 
    38593876      count++; 
    38603877    } 
  • 1.8.2/trunk/src/extmail.c

    r1027 r1100  
    25432543  /* Return a longer description of message flags */ 
    25442544  static char tbuf1[BUFFER_LEN]; 
    2545  
    2546   tbuf1[0] = '\0'; 
     2545  char *tp; 
     2546 
     2547  tp = tbuf1; 
    25472548  if (Read(mp)) 
    2548     strcat(tbuf1, T("Read ")); 
     2549    safe_str(T("Read "), tbuf1, &tp); 
    25492550  else 
    2550     strcat(tbuf1, T("Unread ")); 
     2551    safe_str(T("Unread "), tbuf1, &tp); 
    25512552  if (Cleared(mp)) 
    2552     strcat(tbuf1, T("Cleared ")); 
     2553    safe_str(T("Cleared "), tbuf1, &tp); 
    25532554  if (Urgent(mp)) 
    2554     strcat(tbuf1, T("Urgent ")); 
     2555    safe_str(T("Urgent "), tbuf1, &tp); 
    25552556  if (Mass(mp)) 
    2556     strcat(tbuf1, T("Mass ")); 
     2557    safe_str(T("Mass "), tbuf1, &tp); 
    25572558  if (Forward(mp)) 
    2558     strcat(tbuf1, T("Fwd ")); 
     2559    safe_str(T("Fwd "), tbuf1, &tp); 
    25592560  if (Tagged(mp)) 
    2560     strcat(tbuf1, T("Tagged")); 
     2561    safe_str(T("Tagged"), tbuf1, &tp); 
     2562  *tp = '\0'; 
    25612563  return tbuf1; 
    25622564} 
     
    28032805 
    28042806  /* Handle this now so it doesn't clutter code */ 
    2805   tbuf1[0] = '\0'
     2807  j = 0
    28062808  if (flags & M_URGENT) 
    2807     strcat(tbuf1, "U")
     2809    tbuf1[j++] = 'U'
    28082810  if (flags & M_FORWARD) 
    2809     strcat(tbuf1, "F")
     2811    tbuf1[j++] = 'F'
    28102812  if (flags & M_REPLY) 
    2811     strcat(tbuf1, "R"); 
    2812  
    2813   arg = (char *) mush_malloc(BUFFER_LEN, "string"); 
    2814   arg2 = (char *) mush_malloc(BUFFER_LEN, "string"); 
    2815   arg3 = (char *) mush_malloc(BUFFER_LEN, "string"); 
    2816   arg4 = (char *) mush_malloc(BUFFER_LEN, "string"); 
     2813    tbuf1[j++] = 'R'; 
     2814  tbuf1[j] = '\0'; 
     2815 
     2816  arg = mush_malloc(BUFFER_LEN, "string"); 
     2817  arg2 = mush_malloc(BUFFER_LEN, "string"); 
     2818  arg3 = mush_malloc(BUFFER_LEN, "string"); 
     2819  arg4 = mush_malloc(BUFFER_LEN, "string"); 
    28172820  if (!arg4) 
    28182821    mush_panic("Unable to allocate memory in mailfilter"); 
     
    28372840                     PE_DEFAULT, PT_DEFAULT, NULL); 
    28382841  *bp = '\0'; 
    2839   free((Malloc_t) asave); 
     2842  free(asave); 
    28402843  if (*buff) { 
    28412844    sprintf(buf, "0:%d", mailnumber); 
     
    28432846  } 
    28442847 
    2845   mush_free((Malloc_t) arg, "string"); 
    2846   mush_free((Malloc_t) arg2, "string"); 
    2847   mush_free((Malloc_t) arg3, "string"); 
    2848   mush_free((Malloc_t) arg4, "string"); 
     2848  mush_free(arg, "string"); 
     2849  mush_free(arg2, "string"); 
     2850  mush_free(arg3, "string"); 
     2851  mush_free(arg4, "string"); 
    28492852  restore_global_env("filter_mail", wsave); 
    28502853  restore_global_regs("filter_mail", rsave); 
  • 1.8.2/trunk/src/function.c

    r1027 r1100  
    525525  {"NVPLAYERS", fun_dbwalker, 1, 1, FN_REG}, 
    526526  {"NVTHINGS", fun_dbwalker, 1, 1, FN_REG}, 
    527   {"NWHO", fun_nwho, 0, 0, FN_REG}, 
     527  {"NWHO", fun_nwho, 0, 1, FN_REG}, 
    528528  {"OBJ", fun_obj, 1, 1, FN_REG}, 
    529529  {"OBJEVAL", fun_objeval, 2, -2, FN_NOPARSE}, 
  • 1.8.2/trunk/src/htab.c

    r1027 r1100  
    531531{ 
    532532  notify_format(player, 
    533                 "Table      Buckets Entries LChain  ECh  1Ch  2Ch  3Ch 4+Ch  AvgCh ~Memory"); 
     533                "Table      Buckets Entries LChain  ECh  1Ch  2Ch  3Ch 4+Ch  AvgCh ~Memory"); 
    534534} 
    535535 
     
    554554    lengths[n] = 0; 
    555555  bytes += sizeof(HASHTAB); 
    556   bytes += htab->entry_size * htab->entries; 
    557556  if (htab->buckets) { 
    558557    bytes += HASHENT_SIZE * htab->hashsize; 
     
    576575 
    577576  notify_format(player, 
    578                 "%-10s %7d %7d %6d %4d %4d %4d %4d %4d %6.3f %7u", hname, 
     577                "%-11s %7d %7d %6d %4d %4d %4d %4d %4d %6.3f %7u", hname, 
    579578                htab->hashsize, htab->entries, longest, lengths[0], lengths[1], 
    580579                lengths[2], lengths[3], lengths[4], 
  • 1.8.2/trunk/src/player.c

    r1027 r1100  
    380380  (void) atr_add(player, "LAST", show_time(mudtime, 0), GOD, 0); 
    381381  (void) atr_add(player, "LASTSITE", host, GOD, 0); 
    382   (void) atr_add(player, "LASTIP", ip, GOD, NOTHING); 
     382  (void) atr_add(player, "LASTIP", ip, GOD, 0); 
    383383  (void) atr_add(player, "LASTFAILED", " ", GOD, 0); 
    384384  sprintf(temp, "%d", START_QUOTA); 
  • 1.8.2/trunk/src/warnings.c

    r1027 r1100  
    377377{ 
    378378  static char tbuf1[BUFFER_LEN]; 
     379  char *tp; 
    379380  int listsize, indexx; 
    380381 
    381   tbuf1[0] = '\0'
     382  tp = tbuf1
    382383 
    383384  /* Get the # of elements in checklist */ 
     
    391392       * if the bits set on the_flag is a subset of the bits set on warns 
    392393       */ 
    393       strcat(tbuf1, checklist[indexx].name); 
    394       strcat(tbuf1, " "); 
     394      safe_str(checklist[indexx].name, tbuf1, &tp); 
     395      safe_chr(' ', tbuf1, &tp); 
    395396      /* If we've got a flag which subsumes smaller ones, don't 
    396397       * list the smaller ones