Changeset 467
- Timestamp:
- 08/16/06 01:15:26 (2 years ago)
- Files:
-
- 1.7.7/CHANGES.177 (modified) (1 diff)
- 1.7.7/CHANGES.OLD (modified) (1 diff)
- 1.7.7/Configure (modified) (10 diffs)
- 1.7.7/MANIFEST (modified) (1 diff)
- 1.7.7/Makefile.SH (modified) (2 diffs)
- 1.7.7/Patchlevel (modified) (1 diff)
- 1.7.7/README.SSL (modified) (1 diff)
- 1.7.7/game/txt/hlp/penncmd.hlp (modified) (2 diffs)
- 1.7.7/game/txt/hlp/pennfunc.hlp (modified) (9 diffs)
- 1.7.7/game/txt/hlp/penntop.hlp (modified) (5 diffs)
- 1.7.7/game/txt/hlp/pennv177.hlp (modified) (2 diffs)
- 1.7.7/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.7.7/hdrs/attrib.h (modified) (1 diff)
- 1.7.7/hdrs/dbdefs.h (modified) (1 diff)
- 1.7.7/hdrs/externs.h (modified) (3 diffs)
- 1.7.7/hdrs/flags.h (modified) (2 diffs)
- 1.7.7/hdrs/game.h (modified) (1 diff)
- 1.7.7/hdrs/mushdb.h (modified) (2 diffs)
- 1.7.7/hdrs/switches.h (modified) (1 diff)
- 1.7.7/hdrs/version.h (modified) (1 diff)
- 1.7.7/hints/darwin.sh (modified) (1 diff)
- 1.7.7/src/SWITCHES (modified) (1 diff)
- 1.7.7/src/attrib.c (modified) (4 diffs)
- 1.7.7/src/bsd.c (modified) (15 diffs)
- 1.7.7/src/chunk.c (modified) (2 diffs)
- 1.7.7/src/cmds.c (modified) (2 diffs)
- 1.7.7/src/command.c (modified) (4 diffs)
- 1.7.7/src/conf.c (modified) (2 diffs)
- 1.7.7/src/cque.c (modified) (1 diff)
- 1.7.7/src/db.c (modified) (2 diffs)
- 1.7.7/src/extchat.c (modified) (4 diffs)
- 1.7.7/src/extmail.c (modified) (2 diffs)
- 1.7.7/src/flaglocal.dst (modified) (1 diff)
- 1.7.7/src/flags.c (modified) (16 diffs)
- 1.7.7/src/funcrypt.c (modified) (1 diff)
- 1.7.7/src/function.c (modified) (4 diffs)
- 1.7.7/src/fundb.c (modified) (14 diffs)
- 1.7.7/src/funmath.c (modified) (1 diff)
- 1.7.7/src/funmisc.c (modified) (1 diff)
- 1.7.7/src/game.c (modified) (15 diffs)
- 1.7.7/src/help.c (modified) (2 diffs)
- 1.7.7/src/lock.c (modified) (1 diff)
- 1.7.7/src/log.c (modified) (2 diffs)
- 1.7.7/src/look.c (modified) (11 diffs)
- 1.7.7/src/malias.c (modified) (1 diff)
- 1.7.7/src/mysocket.c (modified) (5 diffs)
- 1.7.7/src/rob.c (modified) (5 diffs)
- 1.7.7/src/speech.c (modified) (9 diffs)
- 1.7.7/src/sql.c (modified) (1 diff)
- 1.7.7/src/strtree.c (modified) (1 diff)
- 1.7.7/src/switchinc.c (modified) (1 diff)
- 1.7.7/src/utils.c (modified) (1 diff)
- 1.7.7/src/wiz.c (modified) (7 diffs)
- 1.7.7/win32/README.mingw (modified) (2 diffs)
- 1.7.7/win32/README_MySQL.txt (added)
- 1.7.7/win32/funs.h (modified) (3 diffs)
- 1.7.7/win32/pennmush.dsp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.7.7/CHANGES.177
r465 r467 18 18 19 19 ========================================================================== 20 21 Version 1.7.7 patchlevel 34 June 22, 2004 22 23 Flags and Powers: 24 * Debit power allows the giving of negative amounts of money. 25 Suggested by Hemlon@SevenStones. 26 * The setting and resetting of flags and powers can be logged 27 by using the new 'log' restriction. Changes were made in 28 flaglocal.dst which you must carry over into flaglocal.c 29 (or, if you don't use flaglocal.c, just rm src/flaglocal.c and 30 flaglocal.dst will be copied in its place). Suggested by Sholevi@M*U*S*H 31 [SW] 32 * Setting and resetting @powers are once again logged by default. [SW] 33 Locks: 34 * @lock/speech can now be set by unprivileged players. @lock/speech 35 now applies to all players (it is no longer automatically overridden 36 by admin). SPEECH_LOCK`*FAILURE attributes can be used to override 37 the default failure messages when @lock/speech fails. 38 Commands: 39 * ex/parent examines an object and shows attributes that will be 40 inherited from its parents (if you are permitted to examine 41 the parent as well). Suggested by BladedThoth@M*U*S*H. 42 * examine now shows the complete (examinable-by-enactor) chain of 43 parent objects, not just the nearest parent. Suggested by Luke@M*U*S*H. 44 Functions: 45 * mailsend() is a function form of @mail/send. Suggested by Moe@ChicagoMUSH 46 * ncon, nvcon, nexits, nvexits, nplayers, nvplayers, nwho, nvwho 47 functions to count the number of each thing. Patch by Walker@M*U*S*H. 48 * xcon, xvcon, xexits, xvexits, xplayers, xvplayers, xwho, xvwho functions 49 to extract slices of potentially long contents, etc. lists. [Rhost,TM] 50 Patch by Walker@M*U*S*H. 51 Minor changes (user-visible): 52 * Players can no longer be set CHOWN_OK. Suggested by Intrevis@M*U*S*H. 53 If you have existing CHOWN_OK players, you probably want to unset 54 this from them, or the results will be confusing (they'll continue 55 to appear to have the flag, even though it won't be testable or 56 settable or clearable; this is desired behavior). 57 * If you're See_All and Pemit_All, you may now @cemit on any channel. 58 Based on a suggestion by Philip Mak. 59 * Attempting to give a player more than max_pennies will give them 60 enough to get them to max_pennies, instead of being treated as 61 an error. Similarly, taking away more pennies than they have will 62 take away exactly all their pennies. 63 * Improved errors for unprivileged users doing @boot/port. 64 Suggested by Intrevis@M*U*S*H. [TAP] 65 Minor changes (internals): 66 * pre OS X Macintosh OSes are no longer supported. Hints for 67 Darwin are improved. [SW] 68 * An extra file descriptor only needed on Sun OS boxes was being 69 opened on all unix systems. [SW] 70 * If no config file name is given on the netmush program's command line, 71 it will assume you mean mush.cnf instead of quitting. You should still 72 be using the restart script instead of netmush directly, though, as it 73 does important things like using the right database... [SW] 74 * 'make local-files' will copy all the src/*local.dst files to their 75 respective .c counterparts. Suggested by Nymeria@M*U*S*H. [SW] 76 Fixes: 77 * Configure handles the case where SO_KEEPALIVE works but TCP_KEEPIDLE isn't 78 defined. [SW] 79 * Win32 portability fixes and mingw hints. [EEH] 80 * Raising max_logins from 0 with @config/set wouldn't take existing 81 connections into account. [SW] 82 * $commands starting with # (that don't look like an @force by dbref) 83 will now be matched. Reported by Intrevis@M*U*S*H. 84 * version() is verbose again. Reported by Sholevi@M*U*S*H. 85 * The double-add of SQL_OK on minimal.db is now really fixed. 86 See p33 changes for information. Report by Mordie@M*U*S*H. 87 * Help fixes by Kevin@M*U*S*H and Cerekk@bDv. 88 * @boot/desc on one's own descriptor is no longer translated to 89 @boot/me. [TAP] 90 * Overflow of integer argument in giving pennies fixed. Report by 91 Sholevi@M*U*S*H. 92 * Typo in fun_vcross() fixed. [SW] 93 * Configure does better when ssl shared libraries, but not static 94 libraries, are available. You can use -D no_openssl to skip SSL checks. 95 20 96 21 97 Version 1.7.7 patchlevel 33 June 3, 2004 1.7.7/CHANGES.OLD
r417 r467 2659 2659 2660 2660 2661 Version 1.6.7 patchlevel 0 Aug est 22, 19962661 Version 1.6.7 patchlevel 0 August 22, 1996 2662 2662 2663 2663 Major Changes: 1.7.7/Configure
r463 r467 426 426 libs='' 427 427 d_openssl='' 428 libcrypto=''429 428 libssl='' 430 429 lns='' … … 1668 1667 osvers="$3" 1669 1668 ;; 1670 dgux) osname=dgux 1669 dgux) osname=dgux 1671 1670 osvers="$3" 1672 1671 ;; … … 1674 1673 osvers="$3" 1675 1674 ;; 1676 freebsd) osname=freebsd 1675 freebsd) osname=freebsd 1677 1676 osvers="$3" ;; 1678 1677 genix) osname=genix ;; 1679 hp*) osname=hpux 1678 hp*) osname=hpux 1680 1679 case "$3" in 1681 1680 *.08.*) osvers=9 ;; … … 1699 1698 esac 1700 1699 ;; 1701 netbsd*) osname=netbsd 1700 netbsd*) osname=netbsd 1702 1701 osvers="$3" 1703 1702 ;; … … 1740 1739 esac 1741 1740 ;; 1742 uts) osname=uts 1741 uts) osname=uts 1743 1742 osvers="$3" 1744 1743 ;; … … 1746 1745 osvers="$4" 1747 1746 ;; 1747 mingw32*) osname=mingw32 1748 osvers="$3" 1749 ;; 1748 1750 $2) case "$osname" in 1749 1751 *isc*) ;; … … 4647 4649 exit(2); 4648 4650 #ifdef I_NETINET_TCP 4651 #ifdef TCP_KEEPIDLE 4649 4652 val = 1; 4650 4653 if (-1 == setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val))) 4651 4654 exit(3); 4655 #else 4656 exit(3); 4657 #endif 4652 4658 #endif 4653 4659 exit(0); … … 4899 4905 : see if we should include -lssl and -lcrypto 4900 4906 echo " " 4901 if $test -r /usr/lib/libssl$_a || \4902 $test -r /lib/libssl$_a || \4903 $test -r /usr/local/lib/libssl$_a ; then4904 echo "-lssl found." >&44905 libssl='-lssl'4906 else4907 xxx=`./loc libssl$_a x $libpth`4908 case "$xxx" in4909 x)4910 echo "No ssl library found." >&44911 libssl=''4912 ;;4913 *)4914 echo "SSL library found in $xxx." >&44915 libssl="$xxx"4916 ;;4917 esac4918 fi4919 4920 if $test -r /usr/lib/libcrypto$_a || \4921 $test -r /lib/libcrypto$_a || \4922 $test -r /usr/local/lib/libcrypto$_a ; then4923 echo "-lcrypto found." >&44924 libcrypto='-lcrypto'4925 else4926 xxx=`./loc libcrypto$_a x $libpth`4927 case "$xxx" in4928 x)4929 echo "No crypto library found." >&44930 libcrypto=''4931 ;;4932 *)4933 echo "SSL crypto library found in $xxx." >&44934 libcrypto="$xxx"4935 ;;4936 esac4937 fi4938 4907 4939 4908 d_openssl="$undef" 4940 case "x$libssl$libcrypto" in 4941 x) 4942 ;; 4943 *) 4944 $cat > test_openssl.c <<EOM 4909 4910 if $test "x$no_openssl" = "x"; then 4911 4912 libssl="-lssl -lcrypto" 4913 4914 $cat > test_ssl.c <<EOM 4945 4915 #include <stdio.h> 4946 4916 #include <stdlib.h> … … 4952 4922 EOM 4953 4923 4954 if $cc $ccflags $ldflags -o test_openssl test_openssl.c $libs $libssl $libcrypto >/dev/null 2>&1 ; 4955 then 4956 echo 'You have openssl...' >&4 4957 version=`./test_openssl` 4958 if $test $? -eq 0; then 4959 d_openssl="$define" 4960 echo '...and at least version 0.9.6. Great.' >&4 4961 else 4962 echo '...but not at least version 0.9.6.' >&4 4924 if $cc $ccflags $ldflags -o test_ssl test_ssl.c $libs $libssl >/dev/null 2>&1 ; 4925 then 4926 echo 'You have openssl...' >&4 4927 version=`./test_ssl` 4928 if $test $? -eq 0; then 4929 echo '...and at least version 0.9.6. Great.' >&4 4930 d_openssl="$define" 4931 else 4932 echo '...but not version 0.9.6 or later.' >&4 4933 libssl='' 4934 fi 4935 else 4936 echo "You don't seem to have openssl." >&4 4963 4937 libssl='' 4964 libcrypto='' 4965 fi 4966 else 4967 echo "You don't seem to have openssl." >&4 4968 libssl='' 4969 libcrypto='' 4970 fi 4971 $rm -f test_openssl* core 4972 4973 ;; 4974 esac 4938 fi 4939 $rm -f test_ssl* core 4940 4941 else 4942 4943 echo "Skipping openssl tests." >&4 4944 libssl='' 4945 4946 fi 4947 4975 4948 : see if rename exists 4976 4949 set rename d_rename … … 7103 7076 less='$less' 7104 7077 libc='$libc' 7105 libcrypto='$libcrypto'7106 7078 libmysqlclient='$libmysqlclient' 7107 7079 libpth='$libpth' 1.7.7/MANIFEST
r463 r467 227 227 po/Makefile 228 228 win32/README.txt 229 win32/README_MySQL.txt 229 230 win32/cmds.h 230 231 win32/config.h 1.7.7/Makefile.SH
r463 r467 50 50 CCFLAGS=$optimize -I.. -I../hdrs $ccflags $warnings 51 51 LDFLAGS=$ldflags 52 CLIBS=$libs $cryptlib $libssl $lib crypto $libmysqlclient52 CLIBS=$libs $cryptlib $libssl $libmysqlclient 53 53 INSTALL=$install 54 54 INSTALLDIR=$installdir … … 146 146 (cd src; make depend "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ 147 147 "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) 148 149 local-files: 150 $(CP) -f src/cmdlocal.dst src/cmdlocal.c 151 $(CP) -f src/flaglocal.dst src/flaglocal.c 152 $(CP) -f src/funlocal.dst src/funlocal.c 153 $(CP) -f src/local.dst src/local.c 148 154 149 155 # REQUIRES GNU INDENT! DON'T INDENT WITH ANYTHING ELSE! 1.7.7/Patchlevel
r465 r467 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.7.7p3 32 This is PennMUSH 1.7.7p34 1.7.7/README.SSL
r463 r467 52 52 The Configure script distributed with PennMUSH automatically detects 53 53 the OpenSSL libraries (libssl and libcrypto) and attempts to link 54 them into the executable, defining HAS_OPENSSL in config.h 54 them into the executable, defining HAS_OPENSSL in config.h. 55 If you have SSL libraries but wish to avoid linking with them, 56 give the -D no_openssl argument to Configure when you run it. 55 57 56 58 You can compile the OpenSSL libraries yourself from source code 1.7.7/game/txt/hlp/penncmd.hlp
r465 r467 1412 1412 mdark <actor> must be WIZARD or ROYALTY 1413 1413 odark <actor> must own the <object> (or be WIZARD or ROYALTY) 1414 1415 The following permissions control other behavior related to the flag: 1416 1417 log Log when the flag is set or cleared. Only meaningful in 1418 <setperms>. 1414 1419 1415 1420 & @function … … 3651 3656 the object's owner and is primarily useful to admins. This switch 3652 3657 ignores the object's VISUAL flag (but not its attribute flags) 3658 The /parent switch show attributes that would be inherited from the 3659 object's parents, if you have permission to examine the attributes 3660 on the parent. 3653 3661 The /all switch shows the values of VEILED attributes. 3654 3662 1.7.7/game/txt/hlp/pennfunc.hlp
r463 r467 144 144 145 145 folderstats() mail() maildstats() mailfrom() mailfstats() 146 mails tats() mailstatus() mailsubject() mailtime()146 mailsend() mailstats() mailstatus() mailsubject() mailtime() 147 147 148 148 & List functions … … 597 597 Returns <string> with the first character capitalized. 598 598 Example: capstr(foo bar baz) returns "Foo bar baz" 599 600 See also: lcstr(), ucstr() 599 601 & CAT() 600 602 cat(<string1>,<string2>[,<string3>,<string4>,...]) … … 1920 1922 Returns <string> with all letters converted to lowercase. 1921 1923 Example: lcstr(Foo BAR bAz) returns "foo bar baz" 1924 1925 See also: capstr(), ucstr() 1922 1926 & LDELETE() 1923 1927 Ldelete(<list>,<position>[,<single-character separator>]) … … 2256 2260 wizards or royalty do NOT appear on the dbref list. 2257 2261 2258 See also: mwho() 2262 See also: mwho(), nwho(), xwho() 2259 2263 & MAIL() 2260 2264 mail() … … 2310 2314 <# sent> <# sent unread> <# sent cleared> <# sent bytes> <# received> 2311 2315 <# received unread> <# received cleared> <# received bytes> 2316 & MAILSEND() 2317 mailsend(<player>,[<subject>/]<message>) 2318 2319 This function sends a message to a player, just like @mail/send. 2320 It returns nothing if successful, or an error message. 2312 2321 & MAP() 2313 2322 map([<object>/]<attribute>,<list>[,<delim>][, <osep>]) … … 2613 2622 2614 2623 See also: lcon(), lexits(), con(), exit() 2624 & NMWHO() 2625 nmwho() 2626 2627 This returns a count of all currently connected, non-hidden players. 2628 It's exactly the same as nwho() used by a mortal, and is suitable 2629 for use on privileged global objects who need an unprivileged count 2630 of who's online. 2631 2632 See also: nwho(), mwho(), xmwho() 2615 2633 & NOR() 2616 2634 nor(<boolean>, <boolean>,...) … … 2637 2655 Returns the dbref number of the object, which must be in the same 2638 2656 room as the object executing num. 2657 & NVCON() 2658 & NCON() 2659 ncon(<object>) 2660 nvcon(<object>) 2661 2662 These functions return a count of the contents in a container. 2663 2664 ncon(<object>) is identical to words(lcon(<object>)) 2665 nvcon(<object>) is identical to words(lvcon(<object>)) 2666 2667 See also: nexits(), nplayers(), xcon(), lcon(), lvcon() 2668 & NVEXITS() 2669 & NEXITS() 2670 nexits(<room>) 2671 nvexits(<room>) 2672 2673 These functions return a count of the exits in a room. 2674 2675 nexits(<room>) is identical to words(lexits(<room>)) 2676 nvexits(<room>) is identical to words(lvexits(<room>)) 2677 2678 See also: ncon(), nplayers(), xexits(), lexits(), lvexits() 2679 & NVPLAYERS() 2680 & NPLAYERS() 2681 nplayers(<object>) 2682 nvplayers(<object>) 2683 2684 These functions return a count of the players in a container. 2685 2686 nplayers(<object>) is identical to words(lplayers(<object>)) 2687 nvplayers(<object>) is identical to words(lvplayers(<object>)) 2688 2689 See also: ncon(), nexits(), xplayers(), lplayers(), lvplayers() 2690 & NWHO() 2691 nwho() 2692 2693 This returns a count of all currently-connected players. When 2694 mortals use this function, DARK wizards or royalty are NOT counted. 2695 2696 See also: lwho(), nmwho(), xwho() 2639 2697 & OBJ() 2640 2698 obj(<object>) … … 3939 3997 Returns <string> with all letters converted to uppercase. 3940 3998 Example: ucstr(Foo BAR baz) returns "FOO BAR BAZ" 3999 4000 See also: lcstr(), capstr() 3941 4001 & UDEFAULT() 3942 4002 Function: udefault([<obj>/]<attr>,<default case>[,<arg>]...) … … 4244 4304 4245 4305 See also: and(), or(), not(), nor() 4306 & XVCON() 4307 & XCON() 4308 xcon(<object>,<start>,<count>) 4309 xvcon(<object>,<start>,<count>) 4310 4311 xcon() fetches <count> or fewer item dbrefs from <object>'s contents 4312 starting at position <start>. It is useful when the number of objects 4313 in a container causes lcon() to exceed the buffer limit. 4314 4315 It is equivalent to extract(lcon(<object>),<start>,<count>) 4316 4317 xvcon() is identical, except it follows the restrictions of 4318 lvcon() 4319 4320 See also: ncon(), lcon(), lvcon() 4321 & XVEXITS() 4322 & XEXITS() 4323 xexits(<room>,<start>,<count>) 4324 xvexits(<room>,<start>,<count>) 4325 4326 xexits() fetches <count> or fewer exit dbrefs from <room> 4327 starting at position <start>. It is useful when the number 4328 of exits in a container causes lexits() to exceed the buffer 4329 limit. 4330 4331 It is equivalent to extract(lexits(<room>),<start>,<count>) 4332 4333 xvexits() is identical, except it follows the restrictions of 4334 lvexits() 4335 4336 See also: nexits(), lexits(), lvexits() 4337 & XVPLAYERS() 4338 & XPLAYERS() 4339 xplayers(<object>,<start>,<count>) 4340 xvplayers(<object>,<start>,<count>) 4341 4342 xplayers() fetches <count> or fewer player dbrefs from <object> 4343 starting at position <start>. It is useful when the number of 4344 players in a container causes lplayers() to exceed the buffer limit. 4345 4346 It is equivalent to extract(lplayers(<object>),<start>,<count>) 4347 4348 xvplayers() is identical, except it follows the restrictions of 4349 lvplayers() 4350 4351 See also: nplayers(), lplayers(), lvplayers() 4352 & XWHO() 4353 & XMWHO() 4354 xwho(start,count) 4355 xmwho(start,count) 4356 4357 xwho() fetches <count> or fewer player dbrefs from the list of connected 4358 players. It is useful when the number of players connected causes lwho() 4359 or pemits in +who $-commands to exceed buffer limits. 4360 4361 It is equivalent to extract(lwho(),<start>,<count>). 4362 4363 xmwho() is identical, except it is limited to non-DARK and non-HIDE 4364 players. 4365 4366 See also: lwho(), mwho(), nwho() 4246 4367 & ZEMIT() 4247 4368 zemit(<zone>, <message>) 1.7.7/game/txt/hlp/penntop.hlp
r463 r467 1033 1033 builder Can use Builder commands. 1034 1034 chat_privs Can use Admin channels. 1035 debit Can use give with a negative amount. 1035 1036 functions Can use @function command. 1036 1037 guest Guest. Restricted command set. … … 1056 1057 see_all Sees everything as if it were Visual. 1057 1058 see_queue Can do @ps on anyone, and @ps/all. 1059 sql_ok Can perform SQL queries 1058 1060 tport_anything Can @teleport anything. 1059 1061 tport_anywhere Can @teleport to anywhere. … … 1310 1312 digit, for numbers. [[:digit:]] is the same as \d. 1311 1313 [[:^digit:]] is the same as \D. 1312 alpha, for letters. alnum, for numbers and letters. 1313 lower, for lower-case letters. upper, for upper-case letters. 1314 alpha, for letters. 1315 alnum, for numbers and letters. 1316 lower, for lower-case letters. 1317 upper, for upper-case letters. 1314 1318 word, for word characters. [[:word:]] is the same as \w. 1315 1319 [[:^word:]] is the same as \W. … … 1322 1326 explicit ranges where possible to improve portability. For example, 1323 1327 [A-Za-z] and [[:alpha:]] are not the same thing in languages with accented 1324 characters. There are other keywords, but the ones listed are the most 1325 useful. 1328 characters. 1326 1329 1327 1330 Examples: … … 1330 1333 > say regmatch(foo bar, lit(^[[:word:]]+$)) 1331 1334 You say "0" 1335 1336 Other, less useful, character class keywords include ascii, cntrl, 1337 graph, print, punct, and xdigit. 1332 1338 1333 1339 & REGEXP EXAMPLES 1.7.7/game/txt/hlp/pennv177.hlp
r465 r467 1 & 1.7.7p3 31 & 1.7.7p34 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.7.7 patchlevel 34 June 22, 2004 15 16 Flags and Powers: 17 * Debit power allows the giving of negative amounts of money. 18 Suggested by Hemlon@SevenStones. 19 * The setting and resetting of flags and powers can be logged 20 by using the new 'log' restriction. Changes were made in 21 flaglocal.dst which you must carry over into flaglocal.c 22 (or, if you don't use flaglocal.c, just rm src/flaglocal.c and 23 flaglocal.dst will be copied in its place). Suggested by Sholevi@M*U*S*H 24 [SW] 25 * Setting and resetting @powers are once again logged by default. [SW] 26 Locks: 27 * @lock/speech can now be set by unprivileged players. @lock/speech 28 now applies to all players (it is no longer automatically overridden 29 by admin). SPEECH_LOCK`*FAILURE attributes can be used to override 30 the default failure messages when @lock/speech fails. 31 Commands: 32 * ex/parent examines an object and shows attributes that will be 33 inherited from its parents (if you are permitted to examine 34 the parent as well). Suggested by BladedThoth@M*U*S*H. 35 * examine now shows the complete (examinable-by-enactor) chain of 36 parent objects, not just the nearest parent. Suggested by Luke@M*U*S*H. 37 Functions: 38 * mailsend() is a function form of @mail/send. Suggested by Moe@ChicagoMUSH 39 * ncon, nvcon, nexits, nvexits, nplayers, nvplayers, nwho, nvwho 40 functions to count the number of each thing. Patch by Walker@M*U*S*H. 41 * xcon, xvcon, xexits, xvexits, xplayers, xvplayers, xwho, xvwho functions 42 to extract slices of potentially long contents, etc. lists. [Rhost,TM] 43 Patch by Walker@M*U*S*H. 44 Minor changes (user-visible): 45 * Players can no longer be set CHOWN_OK. Suggested by Intrevis@M*U*S*H. 46 If you have existing CHOWN_OK players, you probably want to unset 47 this from them, or the results will be confusing (they'll continue 48 to appear to have the flag, even though it won't be testable or 49 settable or clearable; this is desired behavior). 50 * If you're See_All and Pemit_All, you may now @cemit on any channel. 51 Based on a suggestion by Philip Mak. 52 * Attempting to give a player more than max_pennies will give them 53 enough to get them to max_pennies, instead of being treated as 54 an error. Similarly, taking away more pennies than they have will 55 take away exactly all their pennies. 56 * Improved errors for unprivileged users doing @boot/port. 57 Suggested by Intrevis@M*U*S*H. [TAP] 58 Minor changes (internals): 59 * pre OS X Macintosh OSes are no longer supported. Hints for 60 Darwin are improved. [SW] 61 * An extra file descriptor only needed on Sun OS boxes was being 62 opened on all unix systems. [SW] 63 * If no config file name is given on the netmush program's command line, 64 it will assume you mean mush.cnf instead of quitting. You should still 65 be using the restart script instead of netmush directly, though, as it 66 does important things like using the right database... [SW] 67 * 'make local-files' will copy all the src/*local.dst files to their 68 respective .c counterparts. Suggested by Nymeria@M*U*S*H. [SW] 69 Fixes: 70 * Configure handles the case where SO_KEEPALIVE works but TCP_KEEPIDLE isn't 71 defined. [SW] 72 * Win32 portability fixes and mingw hints. [EEH] 73 * Raising max_logins from 0 with @config/set wouldn't take existing 74 connections into account. [SW] 75 * $commands starting with # (that don't look like an @force by dbref) 76 will now be matched. Reported by Intrevis@M*U*S*H. 77 * version() is verbose again. Reported by Sholevi@M*U*S*H. 78 * The double-add of SQL_OK on minimal.db is now really fixed. 79 See p33 changes for information. Report by Mordie@M*U*S*H. 80 * Help fixes by Kevin@M*U*S*H and Cerekk@bDv. 81 * @boot/desc on one's own descriptor is no longer translated to 82 @boot/me. [TAP] 83 * Overflow of integer argument in giving pennies fixed. Report by 84 Sholevi@M*U*S*H. 85 * Typo in fun_vcross() fixed. [SW] 86 * Configure does better when ssl shared libraries, but not static 87 libraries, are available. You can use -D no_openssl to skip SSL checks. 88 89 90 & 1.7.7p33 14 91 Version 1.7.7 patchlevel 33 June 3, 2004 15 92 1.7.7/game/txt/hlp/pennvOLD.hlp
r465 r467 4419 4419 4420 4420 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4421 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 4421 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 4422 4422 1.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 4423 4423 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 1.7.7/hdrs/attrib.h
r463 r467 45 45 extern int atr_iter_get(dbref player, dbref thing, char const *name, 46 46 int mortal, aig_func func, void *args); 47 extern int atr_iter_get_parent(dbref player, dbref thing, char const *name, 48 int mortal, aig_func func); 47 49 extern ATTR *atr_complete_match(dbref player, char const *atr, dbref privs); 48 50 extern void atr_free(dbref thing); 1.7.7/hdrs/dbdefs.h
r465 r467 53 53 54 54 #define Pennies(thing) (db[thing].penn) 55 #define s_Pennies(thing,p) (db[thing].penn=(p))56 55 57 56 #define Parent(x) (db[(x)].parent) 1.7.7/hdrs/externs.h
r465 r467 187 187 extern char *wenv[10], renv[NUMQ][BUFFER_LEN]; 188 188 extern char *wnxt[10], *rnxt[NUMQ]; 189 extern int process_command_port; 189 190 extern void do_second(void); 190 191 extern int do_top(int ncom); … … 324 325 extern int charge_action(dbref player, dbref thing, const char *awhat); 325 326 dbref first_visible(dbref player, dbref thing); 327 328 /* From rob.c */ 329 extern void s_Pennies(dbref thing, int amount); 326 330 327 331 /* From set.c */ … … 576 580 577 581 /* flaglocal.c */ 578 void local_flags( void);582 void local_flags(FLAGSPACE * flags); 579 583 580 584 /* funlist.c */ 1.7.7/hdrs/flags.h
r463 r467 41 41 */ 42 42 struct flagspace { 43 const char *name; /**< The name of this flagspace */ 43 44 PTAB *tab; /**< Prefix table storing flags by name/alias */ 44 45 FLAG **flags; /**< Variable-length array of pointers to canonical flags, indexed by bit */ … … 170 171 #define F_ODARK 0x2000 /* owner/admin/God can see this flag */ 171 172 #define F_DISABLED 0x4000 /* flag can't be used */ 173 #define F_LOG 0x8000 /* Log when the flag is set/cleared */ 172 174 173 175 1.7.7/hdrs/game.h
r465 r467 66 66 enum exam_type { EXAM_NORMAL, EXAM_BRIEF, EXAM_MORTAL }; 67 67 extern void do_examine(dbref player, const char *name, enum exam_type flag, 68 int all );68 int all, int parent); 69 69 extern void do_inventory(dbref player); 70 70 extern void do_find(dbref player, const char *name, char **argv); 1.7.7/hdrs/mushdb.h
r463 r467 46 46 #define Pemit_All(x) (Wizard(x) || has_power_by_name(x,"PEMIT_ALL",NOTYPE)) 47 47 #define Sql_Ok(x) (Wizard(x) || has_power_by_name(x, "SQL_OK", NOTYPE)) 48 #define Can_Debit(x) (Wizard(x) || has_power_by_name(x, "DEBIT", NOTYPE)) 48 49 49 50 /* Permission macros */ … … 135 136 #define DBF_NEW_FLAGS 0x20000 136 137 #define DBF_NEW_POWERS 0x40000 138 #define DBF_POWERS_LOGGED 0x80000 137 139 138 140 /* Reboot DB flag macros - these should be defined whether or not the 1.7.7/hdrs/switches.h
r457 r467 89 89 #define SWITCH_PANIC 88 90 90 #define SWITCH_PARANOID 89 91 #define SWITCH_PLAYERS 90 92 #define SWITCH_PORT 91 93 #define SWITCH_POWERS 92 94 #define SWITCH_PRESERVE 93 95 #define SWITCH_PRINT 94 96 #define SWITCH_PRIVS 95 97 #define SWITCH_PURGE 96 98 #define SWITCH_QUICK 97 99 #define SWITCH_QUIET 98 100 #define SWITCH_READ 99 101 #define SWITCH_REBOOT 100 102 #define SWITCH_RECALL 101 103 #define SWITCH_REGEXP 102 104 #define SWITCH_REGIONS 103 105 #define SWITCH_REGISTER 104 106 #define SWITCH_REMOVE 105 107 #define SWITCH_RENAME 106 108 #define SWITCH_RESTORE 107 109 #define SWITCH_RESTRICT 108 110 #define SWITCH_RETROACTIVE 109 111 #define SWITCH_ROOM 110 112 #define SWITCH_ROOMS 111 113 #define SWITCH_RSARGS 112 114 #define SWITCH_SEE 113 115 #define SWITCH_SEEFLAG 114 116 #define SWITCH_SELF 115 117 #define SWITCH_SEND 116 118 #define SWITCH_SET 117 119 #define SWITCH_SILENT 118 120 #define SWITCH_SKIPDEFAULTS 119 121 #define SWITCH_SPEAK 120 122 #define SWITCH_SPOOF 121 123 #define SWITCH_STATS 122 124 #define SWITCH_SUMMARY 123 125 #define SWITCH_TABLES 124 126 #define SWITCH_TAG 125 127 #define SWITCH_TELEPORT 126 128 #define SWITCH_TF 127 129 #define SWITCH_THINGS 128 130 #define SWITCH_TITLE 129 131 #define SWITCH_TRACE 130 132 #define SWITCH_TYPE 131 133 #define SWITCH_UNCLEAR 132 134 #define SWITCH_UNFOLDER 133 135 #define SWITCH_UNGAG 134 136 #define SWITCH_UNHIDE 135 137 #define SWITCH_UNMUTE 136 138 #define SWITCH_UNTAG 137 139 #define SWITCH_UNTIL 138 140 #define SWITCH_URGENT 139 141 #define SWITCH_USEFLAG 140 142 #define SWITCH_WHAT 141 143 #define SWITCH_WHO 142 144 #define SWITCH_WIPE 143 145 #define SWITCH_WIZ 144 146 #define SWITCH_WIZARD 145 147 #define SWITCH_YES 146 148 #define SWITCH_ZONE 147 91 #define SWITCH_PARENT 90 92 #define SWITCH_PLAYERS 91 93 #define SWITCH_PORT 92 94 #define SWITCH_POWERS 93 95 #define SWITCH_PRESERVE 94 96 #define SWITCH_PRINT 95 97 #define SWITCH_PRIVS 96 98 #define SWITCH_PURGE 97 99 #define SWITCH_QUICK 98 100 #define SWITCH_QUIET 99 101 #define SWITCH_READ 100 102 #define SWITCH_REBOOT 101 103 #define SWITCH_RECALL 102 104 #define SWITCH_REGEXP 103 105 #define SWITCH_REGIONS 104 106 #define SWITCH_REGISTER 105 107 #define SWITCH_REMOVE 106 108 #define SWITCH_RENAME 107 109 #define SWITCH_RESTORE 108 110 #define SWITCH_RESTRICT 109 111 #define SWITCH_RETROACTIVE 110 112 #define SWITCH_ROOM 111 113 #define SWITCH_ROOMS 112 114 #define SWITCH_RSARGS 113 115 #define SWITCH_SEE 114 116 #define SWITCH_SEEFLAG 115 117 #define SWITCH_SELF 116 118 #define SWITCH_SEND 117 119 #define SWITCH_SET 118 120 #define SWITCH_SILENT 119 121 #define SWITCH_SKIPDEFAULTS 120 122 #define SWITCH_SPEAK 121 123 #define SWITCH_SPOOF 122 124 #define SWITCH_STATS 123 125 #define SWITCH_SUMMARY 124 126 #define SWITCH_TABLES 125 127 #define SWITCH_TAG 126 128 #define SWITCH_TELEPORT 127 129 #define SWITCH_TF 128 130 #define SWITCH_THINGS 129 131 #define SWITCH_TITLE 130 132 #define SWITCH_TRACE 131 133 #define SWITCH_TYPE 132 134 #define SWITCH_UNCLEAR 133 135 #define SWITCH_UNFOLDER 134 136 #define SWITCH_UNGAG 135 137 #define SWITCH_UNHIDE 136 138 #define SWITCH_UNMUTE 137 139 #define SWITCH_UNTAG 138 140 #define SWITCH_UNTIL 139 141 #define SWITCH_URGENT 140 142 #define SWITCH_USEFLAG 141 143 #define SWITCH_WHAT 142 144 #define SWITCH_WHO 143 145 #define SWITCH_WIPE 144 146 #define SWITCH_WIZ 145 147 #define SWITCH_WIZARD 146 148 #define SWITCH_YES 147 149 #define SWITCH_ZONE 148 1.7.7/hdrs/version.h
r465 r467 1 1 #define VERSION "1.7.7" 2 #define PATCHLEVEL "3 3"3 #define PATCHDATE "[06/ 03/2004]"4 #define NUMVERSION 00100700703 32 #define PATCHLEVEL "34" 3 #define PATCHDATE "[06/22/2004]" 4 #define NUMVERSION 001007007034 1.7.7/hints/darwin.sh
r465 r467 1 1 usenm="n" 2 2 cdecl='' 3 so='dylib' 3 4 1.7.7/src/SWITCHES
r457 r467 88 88 PANIC 89 89 PARANOID 90 PARENT 90 91 PLAYERS 91 92 PORT 1.7.7/src/attrib.c
r463 r467 72 72 int flags); 73 73 static ATTR *find_atr_in_list(ATTR *atr, char const *name); 74 static ATTR *atr_get_with_parent(dbref obj, char const *atrname, dbref *parent); 74 75 75 76 /*======================================================================*/ … … 733 734 atr_get(dbref obj, char const *atrname) 734 735 { 736 return atr_get_with_parent(obj, atrname, NULL); 737 } 738 739 static ATTR * 740 atr_get_with_parent(dbref obj, char const *atrname, dbref *parent) 741 { 735 742 static char name[ATTRIBUTE_NAME_LIMIT + 1]; 736 743 char *p; … … 774 781 /* Now actually find the attribute. */ 775 782 atr = find_atr_in_list(atr, name); 776 if (atr && (target == obj || !AF_Private(atr))) 783 if (atr && (target == obj || !AF_Private(atr))) { 784 if (parent) 785 *parent = target; 777 786 return atr; 787 } 778 788 779 789 continue_target: … … 875 885 indirect = &AL_NEXT(ptr); 876 886
