Changeset 1100
- Timestamp:
- 08/27/07 15:29:44 (1 year ago)
- Files:
-
- 1.8.2/trunk/CHANGES.182 (modified) (2 diffs)
- 1.8.2/trunk/Patchlevel (modified) (1 diff)
- 1.8.2/trunk/game/txt/hlp/pennfunc.hlp (modified) (3 diffs)
- 1.8.2/trunk/game/txt/hlp/pennv182.hlp (modified) (3 diffs)
- 1.8.2/trunk/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.8.2/trunk/hdrs/version.h (modified) (1 diff)
- 1.8.2/trunk/src/bsd.c (modified) (1 diff)
- 1.8.2/trunk/src/extmail.c (modified) (4 diffs)
- 1.8.2/trunk/src/function.c (modified) (1 diff)
- 1.8.2/trunk/src/htab.c (modified) (3 diffs)
- 1.8.2/trunk/src/player.c (modified) (1 diff)
- 1.8.2/trunk/src/warnings.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.8.2/trunk/CHANGES.182
r1093 r1100 14 14 ========================================================================== 15 15 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 17 Minor changes: 18 * nwho() now takes an optional viewer argument like lwho(). 19 20 Fixes: 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. 25 26 * Crash bug in sortkey(). Fix by Nathan Baum. 26 27 * 'help @desc' brings up @describe instead of @descformat. … … 44 45 Fixes: 45 46 * 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] 46 49 * Fixed handling of telnet NOPs sent by clients. [SW] 47 50 * The OpenSSL random number pool wasn't getting adequately 1.8.2/trunk/Patchlevel
r1027 r1100 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.8.2p 62 This is PennMUSH 1.8.2p7 1.8.2/trunk/game/txt/hlp/pennfunc.hlp
r925 r1100 1170 1170 get_eval(<object>/<attribute>) 1171 1171 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. 1177 1179 1178 1180 Example: … … 2719 2721 will have this dbref. 2720 2722 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 suitable2726 for use on privileged global objects who need an unprivileged count2727 of who's online.2728 2729 See also: nwho(), mwho(), xmwho()2730 2723 & NOR() 2731 2724 nor(<boolean>[, ... , <booleanN>]) … … 2796 2789 2797 2790 See also: ncon(), nexits(), xthings(), lthings(), lvthings() 2791 & NMWHO() 2798 2792 & NWHO() 2799 2793 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 2802 2798 mortals use this function, DARK wizards or royalty are NOT counted. 2803 2799 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 2809 See also: lwho(), mwho(), xwho(), xmwho() 2805 2810 & OBJ() 2806 2811 obj(<object>) 1.8.2/trunk/game/txt/hlp/pennv182.hlp
r1027 r1100 1 & 1.8.2p 61 & 1.8.2p7 2 2 & changes 3 3 This is a list of changes in this patchlevel which are probably of … … 12 12 be read in 'help patchlevels'. 13 13 14 Version 1.8.2 patchlevel 7 Aug 27, 2007 15 16 Minor changes: 17 * nwho() now takes an optional viewer argument like lwho(). 18 19 Fixes: 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 14 33 Version 1.8.2 patchlevel 6 July 9, 2007 15 34 … … 26 45 Fixes: 27 46 * 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] 28 49 * Fixed handling of telnet NOPs sent by clients. [SW] 29 50 * The OpenSSL random number pool wasn't getting adequately 1.8.2/trunk/game/txt/hlp/pennvOLD.hlp
r1027 r1100 4418 4418 type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 4419 4419 4420 1.8.2: 0, 1, 2, 3, 4, 5, 6 4420 1.8.2: 0, 1, 2, 3, 4, 5, 6, 7 4421 4421 1.8.1: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 4422 4422 1.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 1 1 #define VERSION "1.8.2" 2 #define PATCHLEVEL " 6"3 #define PATCHDATE "[0 7/09/2007]"4 #define NUMVERSION 100800200 62 #define PATCHLEVEL "7" 3 #define PATCHDATE "[08/27/2007]" 4 #define NUMVERSION 1008002007 1.8.2/trunk/src/bsd.c
r1027 r1100 3852 3852 { 3853 3853 DESC *d; 3854 dbref victim; 3854 3855 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 } 3856 3873 3857 3874 DESC_ITER_CONN(d) { 3858 if (!Hidden(d) || (powered && Priv_Who(executor))) {3875 if (!Hidden(d) || powered) { 3859 3876 count++; 3860 3877 } 1.8.2/trunk/src/extmail.c
r1027 r1100 2543 2543 /* Return a longer description of message flags */ 2544 2544 static char tbuf1[BUFFER_LEN]; 2545 2546 tbuf1[0] = '\0'; 2545 char *tp; 2546 2547 tp = tbuf1; 2547 2548 if (Read(mp)) 2548 s trcat(tbuf1, T("Read "));2549 safe_str(T("Read "), tbuf1, &tp); 2549 2550 else 2550 s trcat(tbuf1, T("Unread "));2551 safe_str(T("Unread "), tbuf1, &tp); 2551 2552 if (Cleared(mp)) 2552 s trcat(tbuf1, T("Cleared "));2553 safe_str(T("Cleared "), tbuf1, &tp); 2553 2554 if (Urgent(mp)) 2554 s trcat(tbuf1, T("Urgent "));2555 safe_str(T("Urgent "), tbuf1, &tp); 2555 2556 if (Mass(mp)) 2556 s trcat(tbuf1, T("Mass "));2557 safe_str(T("Mass "), tbuf1, &tp); 2557 2558 if (Forward(mp)) 2558 s trcat(tbuf1, T("Fwd "));2559 safe_str(T("Fwd "), tbuf1, &tp); 2559 2560 if (Tagged(mp)) 2560 strcat(tbuf1, T("Tagged")); 2561 safe_str(T("Tagged"), tbuf1, &tp); 2562 *tp = '\0'; 2561 2563 return tbuf1; 2562 2564 } … … 2803 2805 2804 2806 /* Handle this now so it doesn't clutter code */ 2805 tbuf1[0] = '\0';2807 j = 0; 2806 2808 if (flags & M_URGENT) 2807 strcat(tbuf1, "U");2809 tbuf1[j++] = 'U'; 2808 2810 if (flags & M_FORWARD) 2809 strcat(tbuf1, "F");2811 tbuf1[j++] = 'F'; 2810 2812 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"); 2817 2820 if (!arg4) 2818 2821 mush_panic("Unable to allocate memory in mailfilter"); … … 2837 2840 PE_DEFAULT, PT_DEFAULT, NULL); 2838 2841 *bp = '\0'; 2839 free( (Malloc_t)asave);2842 free(asave); 2840 2843 if (*buff) { 2841 2844 sprintf(buf, "0:%d", mailnumber); … … 2843 2846 } 2844 2847 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"); 2849 2852 restore_global_env("filter_mail", wsave); 2850 2853 restore_global_regs("filter_mail", rsave); 1.8.2/trunk/src/function.c
r1027 r1100 525 525 {"NVPLAYERS", fun_dbwalker, 1, 1, FN_REG}, 526 526 {"NVTHINGS", fun_dbwalker, 1, 1, FN_REG}, 527 {"NWHO", fun_nwho, 0, 0, FN_REG},527 {"NWHO", fun_nwho, 0, 1, FN_REG}, 528 528 {"OBJ", fun_obj, 1, 1, FN_REG}, 529 529 {"OBJEVAL", fun_objeval, 2, -2, FN_NOPARSE}, 1.8.2/trunk/src/htab.c
r1027 r1100 531 531 { 532 532 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"); 534 534 } 535 535 … … 554 554 lengths[n] = 0; 555 555 bytes += sizeof(HASHTAB); 556 bytes += htab->entry_size * htab->entries;557 556 if (htab->buckets) { 558 557 bytes += HASHENT_SIZE * htab->hashsize; … … 576 575 577 576 notify_format(player, 578 "%-1 0s %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, 579 578 htab->hashsize, htab->entries, longest, lengths[0], lengths[1], 580 579 lengths[2], lengths[3], lengths[4], 1.8.2/trunk/src/player.c
r1027 r1100 380 380 (void) atr_add(player, "LAST", show_time(mudtime, 0), GOD, 0); 381 381 (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); 383 383 (void) atr_add(player, "LASTFAILED", " ", GOD, 0); 384 384 sprintf(temp, "%d", START_QUOTA); 1.8.2/trunk/src/warnings.c
r1027 r1100 377 377 { 378 378 static char tbuf1[BUFFER_LEN]; 379 char *tp; 379 380 int listsize, indexx; 380 381 381 t buf1[0] = '\0';382 tp = tbuf1; 382 383 383 384 /* Get the # of elements in checklist */ … … 391 392 * if the bits set on the_flag is a subset of the bits set on warns 392 393 */ 393 s trcat(tbuf1, checklist[indexx].name);394 s trcat(tbuf1, " ");394 safe_str(checklist[indexx].name, tbuf1, &tp); 395 safe_chr(' ', tbuf1, &tp); 395 396 /* If we've got a flag which subsumes smaller ones, don't 396 397 * list the smaller ones
