This is patch18 to PennMUSH 1.7.4. After applying this patch, you will have version 1.7.4p18 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.4-patch18 ./Configure -d make update make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. Same for index.{nws,hlp,evt}. Then @shutdown and restart your MUSH. - Alan/Javelin In this patch: Minor Changes: * The Mersenne Twister RNG has been backported from 1.7.5 into this patchlevel, as it is not susceptible to some bugs that could cause the RNG to hang the server. Report by Bellemore@M*U*S*H. * Improved detection of info_slave errors. Based on patch by CU5. * Rooms and exits can now be @forced. Suggested by Philip Mak. * Deleting files from the hlp/nws/etc. directories is now sufficient to cause game/txt/Makefile to rebuild the txt files. Patch by Philip Mak. * A see_all player may now use @chan/decompile on any channel. Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria. Fixes: * The QUEUE and semaphore attributes aren't listed in @decompile anymore. Suggested by Oriens@Alexandria. [SW] * Several compiler warnings fixed. [SW] * The LASTSITE and LASTIP attributes are now set locked and wizard by default, to go along with the other connection-tracking attributes. [SW] * Help on-vacation updated. Report by Nymeria@M*U*S*H. * Help for following() function added. Report by Ashen-Shugar@Rhost. * The last line of the access.cnf file sometimes wouldn't get read properly. [SW] * lnum improperly cached its return values without consideration for changes in separator, so subsequent lnums with different separators broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP] * Failing to speak on a channel you can't see no longer reveals the full channel name. Reported by Vadiv@M*U*S*H. * Passing a negative argument to the space() function now returns an error string instead of 8192 blanks. Patch by Myrddin. * Improved messages for following/unfollowing an ambiguous object. Reported by Philip Mak. Prereq: 1.7.4p17 *** 1_7_4.260/Patchlevel Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/5_Patchlevel 1.35 600) --- 1_7_4.279(w)/Patchlevel Mon, 06 May 2002 16:06:40 -0500 dunemush (pennmush/5_Patchlevel 1.36 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.4p17 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.4p18 *** 1_7_4.260/CHANGES Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.35 600) --- 1_7_4.279(w)/CHANGES Fri, 10 May 2002 21:47:41 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.50 600) *************** *** 18,23 **** --- 18,57 ---- ========================================================================== + Version 1.7.4 patchlevel 18 May 6, 2002 + + Minor Changes: + * The Mersenne Twister RNG has been backported from 1.7.5 into + this patchlevel, as it is not susceptible to some bugs that could + cause the RNG to hang the server. Report by Bellemore@M*U*S*H. + * Improved detection of info_slave errors. Based on patch by CU5. + * Rooms and exits can now be @forced. Suggested by Philip Mak. + * Deleting files from the hlp/nws/etc. directories is now sufficient + to cause game/txt/Makefile to rebuild the txt files. Patch by + Philip Mak. + * A see_all player may now use @chan/decompile on any channel. + Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria. + Fixes: + * The QUEUE and semaphore attributes aren't listed in @decompile + anymore. Suggested by Oriens@Alexandria. [SW] + * Several compiler warnings fixed. [SW] + * The LASTSITE and LASTIP attributes are now set locked and wizard by default, + to go along with the other connection-tracking attributes. [SW] + * Help on-vacation updated. Report by Nymeria@M*U*S*H. + * Help for following() function added. Report by Ashen-Shugar@Rhost. + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + * lnum improperly cached its return values without consideration for + changes in separator, so subsequent lnums with different separators + broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP] + * Failing to speak on a channel you can't see no longer reveals the + full channel name. Reported by Vadiv@M*U*S*H. + * Passing a negative argument to the space() function now returns + an error string instead of 8192 blanks. Patch by Myrddin. + * Improved messages for following/unfollowing an ambiguous object. + Reported by Philip Mak. + + Version 1.7.4 patchlevel 17 April 14, 2002 Minor Changes: *** 1_7_4.260/game/txt/nws/index.nws Wed, 13 Dec 2000 15:49:16 -0600 dunemush (pennmush/11_index.nws 1.1.1.1.1.1.1.1 660) --- 1_7_4.279(w)/game/txt/nws/index.nws Mon, 15 Apr 2002 23:25:39 -0500 dunemush (pennmush/11_index.nws 1.1.1.1.1.1.1.1.1.1 660) *************** *** 1,6 **** & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! changes code -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- --- 1,8 ---- & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! changes code ! ! & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- *** 1_7_4.260/game/txt/hlp/pennvers.hlp Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.3 600) --- 1_7_4.279(w)/game/txt/hlp/pennvers.hlp Fri, 10 May 2002 21:48:33 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1 600) *************** *** 1,5 **** & changes ! & 1.7.4p17 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' --- 1,5 ---- & changes ! & 1.7.4p18 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' *************** *** 11,16 **** --- 11,51 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.4 patchlevel 18 May 6, 2002 + + Minor Changes: + * The Mersenne Twister RNG has been backported from 1.7.5 into + this patchlevel, as it is not susceptible to some bugs that could + cause the RNG to hang the server. Report by Bellemore@M*U*S*H. + * Improved detection of info_slave errors. Based on patch by CU5. + * Rooms and exits can now be @forced. Suggested by Philip Mak. + * Deleting files from the hlp/nws/etc. directories is now sufficient + to cause game/txt/Makefile to rebuild the txt files. Patch by + Philip Mak. + * A see_all player may now use @chan/decompile on any channel. + Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria. + Fixes: + * The QUEUE and semaphore attributes aren't listed in @decompile + anymore. Suggested by Oriens@Alexandria. [SW] + * Several compiler warnings fixed. [SW] + * The LASTSITE and LASTIP attributes are now set locked and wizard by default, + to go along with the other connection-tracking attributes. [SW] + * Help on-vacation updated. Report by Nymeria@M*U*S*H. + * Help for following() function added. Report by Ashen-Shugar@Rhost. + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + * lnum improperly cached its return values without consideration for + changes in separator, so subsequent lnums with different separators + broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP] + * Failing to speak on a channel you can't see no longer reveals the + full channel name. Reported by Vadiv@M*U*S*H. + * Passing a negative argument to the space() function now returns + an error string instead of 8192 blanks. Patch by Myrddin. + * Improved messages for following/unfollowing an ambiguous object. + Reported by Philip Mak. + + + & 1.7.4p17 Version 1.7.4 patchlevel 17 April 14, 2002 Minor Changes: *************** *** 5063,5069 **** For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 --- 5098,5104 ---- For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 *** 1_7_4.260/game/txt/hlp/pennfunc.hlp Thu, 04 Apr 2002 15:04:53 -0600 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3 600) --- 1_7_4.279(w)/game/txt/hlp/pennfunc.hlp Fri, 10 May 2002 21:43:13 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1 600) *************** *** 96,105 **** Dbref functions return a dbref or list of dbrefs related to some value on an object. ! con() entrances() followers() home() lcon() ! lexits() loc() locate() lparent() lsearch() ! next() num() owner() parent() pmatch() ! rloc() rnum() room() where() zone() See also: DBREF & Information functions --- 96,106 ---- Dbref functions return a dbref or list of dbrefs related to some value on an object. ! con() entrances() followers() following() home() ! lcon() lexits() loc() locate() lparent() ! lsearch() next() num() owner() parent() ! pmatch() rloc() rnum() room() where() ! zone() See also: DBREF & Information functions *************** *** 795,800 **** --- 796,803 ---- Example: > say [edit(this is a test,^,I think%b,$,.,a test,an exam)] You say "I think this is an exam." + + edit() can not replace a literal single ^ or $. Use regedit() for that. See also @edit, regedit(). & ELEMENT() *************** *** 1060,1065 **** --- 1063,1073 ---- Returns the list of things and players following object. You must control object. + & FOLLOWING() + following() + + Returns the list of things and players that the object is following. + You must control object. & FOREACH() foreach([/],[,[,]]) *** 1_7_4.260/game/txt/hlp/pennflag.hlp Mon, 04 Mar 2002 15:09:34 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1 600) --- 1_7_4.279(w)/game/txt/hlp/pennflag.hlp Sun, 28 Apr 2002 15:57:50 -0500 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.1 600) *************** *** 483,490 **** This flag may be used by the MUSH to allow players to indicate when they have left for vacation, to prevent themselves from being purged ! for inactivity. It is automatically cleared whenever a player logs in, ! so players should @set it just prior to leaving the net. & OPAQUE Flag: OPAQUE (all types) --- 483,492 ---- This flag may be used by the MUSH to allow players to indicate when they have left for vacation, to prevent themselves from being purged ! for inactivity. Its usefulness depends on game policy. ! ! You will be notified (periodically and on connect) if you leave this flag ! set, to remind you to unset it when you return from vacation. & OPAQUE Flag: OPAQUE (all types) *** 1_7_4.260/game/txt/hlp/penncmd.hlp Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 600) --- 1_7_4.279(w)/game/txt/hlp/penncmd.hlp Mon, 22 Apr 2002 11:30:13 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2 600) *************** *** 3186,3192 **** through. This doesn't prevent you from going somewhere else on your own. ! See also: unfollow, dismiss, desert, followers(), @follow, @ofollow, @afollow & dismiss dismiss dismiss --- 3186,3193 ---- through. This doesn't prevent you from going somewhere else on your own. ! See also: unfollow, dismiss, desert, followers(), following(), ! @follow, @ofollow, @afollow & dismiss dismiss dismiss *** 1_7_4.260/game/txt/hlp/index.hlp Tue, 09 Jan 2001 17:56:37 -0600 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2 660) --- 1_7_4.279(w)/game/txt/hlp/index.hlp Mon, 15 Apr 2002 23:25:39 -0500 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2.1.1 660) *************** *** 1,479 **** & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! " $-commands $-commands2 ! + 1.50p6 1.50p7 ! 1.50p8 1.50p9 1.50p10 ! 1.50p11 1.50p12 1.50p13 ! 1.50p14 1.50pdune1 1.50pdune2 ! 1.6.0p0 1.6.0p3 1.6.0p4 ! 1.6.0p5 1.6.1p0 1.6.1p1 ! 1.6.10p0 1.6.10p1 1.6.10p2 ! 1.6.10p3 1.6.10p4 1.6.10p5 ! 1.6.10p6 1.6.10p6 1.6.2p0 ! 1.6.2p1 1.6.3p0 1.6.3p1 ! 1.6.3p2 1.6.3p3 1.6.3p4 ! 1.6.3p5 1.6.3p6 1.6.3p7 ! 1.6.4p0 1.6.4p1 1.6.4p2 ! 1.6.5p0 1.6.5p1 1.6.5p2 ! 1.6.5p3 1.6.5p4 1.6.6p0 For more, see Entries-2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 1.6.7p0 1.6.7p1 1.6.7p2 ! 1.6.7p3 1.6.7p4 1.6.7p5 ! 1.6.7p6 1.6.8p0 1.6.8p1 ! 1.6.9p0 1.6.9p1 1.6.9p2 ! 1.6.9p3 1.6.9p4 1.6.9p5 ! 1.6.9p6 1.6.9p7 1.6.9p8 ! 1.6.9p9 1.7.0p0 1.7.0p1 ! 1.7.0p2 1.7.0p3 1.7.0p4 ! 1.7.0p5 1.7.0p6 1.7.0p7 ! 1.7.0p8 1.7.0p9 1.7.0p10 ! 1.7.0p11 1.7.0p11 1.7.1p0 ! 1.7.1p1 1.7.1p2 1.7.1p3 ! 1.7.2p0 1.7.2p1 1.7.2p2 ! 1.7.2p3 1.7.2p4 1.7.2p5 ! 1.7.2p6 1.7.2p7 1.7.2p8 ! 1.7.2p9 1.7.2p10 1.7.2p11 For more, see Entries-3 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-3 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 1.7.2p12 1.7.2p13 1.7.2p14 ! 1.7.2p15 1.7.2p16 1.7.2p17 ! 1.7.2p18 1.7.2p19 1.7.2p20 ! 1.7.2p21 1.7.2p22 1.7.2p23 ! 1.7.2p24 1.7.2p25 1.7.2p26 ! 1.7.2p27 1.7.2p28 1.7.2p29 ! 1.7.2p30 1.7.2p31 1.7.2p32 ! 1.7.3p0 1.7.3p1 1.7.3p2 ! 1.7.3p3 1.7.3p4 1.7.3p5 ! 1.7.3p6 1.7.3p7 1.7.3p8 ! 1.7.3p9 1.7.3p10 1.7.3p11 ! 1.7.3p12 1.7.3p13 : ! ; @-attributes @-building ! @-general @-wizard @@ ! @@() @aahear @aclone ! @aconnect @adeath @adescribe For more, see Entries-4 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-4 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @adestroy @adisconnect @adrop ! @aefail @aenter @afailure ! @afollow @agive @ahear ! @aidescribe @aleave @alfail ! @alias @allhalt @allquota ! @amhear @amove @apayment ! @areceive @asuccess @atport ! @atrchown @atrlock @attribute ! @aufail @aunfollow @ause ! @away @azenter @azleave ! @boot @break @cemit ! @channel @channel2 @channel3 ! @channel4 @channel5 @charges ! @chat @chown @chownall ! @chzone @chzone2 @chzoneall ! @clock @clock2 @clone For more, see Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @command @comment @config ! @conformat @cost @cpattr ! @create @dbck @death ! @decompile @decompile2 @decompile3 ! @describe @destroy @destroy2 ! @dig @dig2 @disable ! @doing @dolist @drain ! @drop @dump @ealias ! @edit @efail @elock ! @emit @enable @enter ! @entrances @eunlock @exitformat ! @failure @filter @filter2 ! @find @firstexit @follow ! @force @force2 @function ! @function2 @function3 @function4 ! @gedit @give @grep2 For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @grep @halt @haven ! @hide @idescribe @idle ! @infilter @inprefix @kick ! @lalias @leave @lemit ! @lfail @link @list ! @listen = @listen2 ! @listmotd @lock @lock2 ! @lock3 @lock4 @lock5 ! @lock6 @lock7 @lock8 ! @logwipe/ ! @map2 @mail @malias ! @malias2 @malias3 @malias4 ! @malias5 @map @motd ! @move @mvattr @name ! @nameformat @newpassword @notify ! @nuke @odeath @odescribe For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @odrop @oefail @oemit ! @oenter @ofailure @ofollow ! @ogive @oidescribe @oleave ! @olfail @omove @opayment ! @open @oreceive @osuccess ! @otport @oufail @ounfollow ! @ouse @oxenter @oxleave ! @oxmove @oxtport @ozenter ! @ozleave @parent @password ! @payment @pcreate @pemit ! @pemit2 @poll @poor ! @power @prefix @ps ! @purge @quota @readcache ! @receive @recycle @rejectmotd ! @remit @restart @runout ! @rwall @rwallemit @rwallpose For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @scan @search @search2 ! @search3 @select @set ! @set2 @set3 @sex ! @shutdown @sitelock @sitelock2 ! @sitelock3 @squota @startup ! @stats @success @sweep ! @switch @switch2 @teleport ! @tport @trigger @trigger2 ! @ufail @ulock @undestroy ! @unfollow @unlink @unlock ! @unrecycle @uptime @uptime2 ! @use @uunlock @verb ! @verb2 @verb3 @verb4 ! @version @vrml_url @wait ! @wait2 @wall @wallemit ! @wallpose @warnings @warnings2 For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @warnings3 @wcheck @whereis ! @wipe @wizemit @wizmotd ! @wizpose @wizwall @zemit ! @zenter @zleave \ ! abode abs() acos() ! action lists action2 add() ! after() ahelp alphamax() ! alphamin() and() andflags() ! anews ansi ansi() ! aposs() art() asin() ! atan() atrlock() attrcnt() ! attrib-ownership attribute functions attribute list ! attributes attributes list attributes2 ! attributes3 attributes4 audible ! audible2 band() beep() ! before() being killed bitwise functions For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! bnand() bnot() boolean functions ! boolean values boolean2 bor() ! bound() brackets() brief ! builder bxor() cand() ! capstr() case() caseall() ! cat() cd ceil() ! cemit() center() cflags() ! ch changes channel-list ! channels() chat chown_ok ! clients clock() clone() ! cloudy code color ! commands comp() comsys ! con() config() conn() ! connected control controls() ! convsecs() convtime() convutcsecs() ! copyright copyrite cor() For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! cos() costs create() ! credits ctime() ctitle() ! cv cwho() dark ! dark2 database dbref # ! dbref functions dbref number dbref2 ! dbrefs debug debug2 ! dec() decrypt() default() ! delete() destroy_ok die() ! dig() dist2d() dist3d() ! div() doing doing() ! drop drop-tos e() ! edefault() edit() element() ! elements() elock() emit() ! enactor encrypt() endtag() ! enter enter_ok entrances() ! eq() escape() etimefmt() For more, see Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! etimefmt2 eval() evaluation order ! evaluation2 events examine ! executor exit() exits ! exits2 exp() extract() ! failure fdiv() filter() ! filterbool() findable() first() ! fixed flag list flags ! flags list flags() flags2 ! flip() floating floating point functions ! floor() floordiv() fmod() ! fold() fold2 folderstats() ! follow followers() force_white ! foreach() foreach2 fullname() ! function list functions functions() ! functions2 gagged gender ! get get() get_eval() For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! give global commands globals ! go going goto ! grab() graball() grep() ! grepi() gt() gte() ! halt hasattr() hasattrp() ! hasattrpval() hasattrval() hasflag() ! haspower() hastype() haven ! help here hidden() ! home() homes html ! html functions html() idle() ! idlesecs() if() ifelse() ! inc() index index() ! info information functions inherit ! inherit2 insert() interiors ! interiors2 inum() inventory ! isdaylight() isdbref() isint() For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! isnum() isword() items() ! iter() iter2 itext() ! judge jump_ok jury_ok ! kill last last() ! lastsite lattr() lcon() ! lcstr() ldelete() leave ! left() lemit() lexits() ! license light link() ! link_ok linking list functions ! listen_parent listening listening2 ! listening3 lists lit() ! ljust() lmath() ln() ! lnum() loc() localize() ! locate() locate2 lock list ! lock types lock() locking ! locklist locks locktypes For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! locktypes2 log() logout ! look look2 looping ! lparent() lsearch() lsearch2 ! lstats() lt() lte() ! lwho() macros macros2 ! mail() mail-admin mail-folders ! mail-other mail-reading mail-sending ! maildstats() mailfrom() mailfstats() ! mailstats() mailstatus() mailsubject() ! mailtime() map() master room ! match() matchall() matching ! math functions max() me ! mean() median() member() ! merge() mid() min() ! mix() mod() modulo() ! modulus() money money() For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! monitor mortal move ! mtime() mudname() mul() ! munge() munge2 munge3 ! mushcode mushcode2 mwho() ! myopic name() nand() ! nattr() nearby() neq() ! newbie newbie2 newbie3 ! news next() no_command ! no_leave no_tel no_warn ! noleave non-standard attributes nor() ! nospoof not() nowarn ! null() num() obj() ! object parents objeval() objmem() ! oemit() on-vacation opaque ! open() or() orflags() ! owner() page page2 For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! paranoid parent parent() ! parents parents2 parents3 ! parents4 parents5 parse() ! patchlevels pemit() pi() ! player playermem() pmatch() ! poll() ports() pos() ! pose pose2 poss() ! power() powers list powers list2 ! powers() powers2 pueblo ! pueblo features pueblo() puppet ! puppets puppets2 queue ! quiet quit quota() ! r() r-function rand() ! read regedit() regeditall() ! regeditalli() regediti() regexp ! regexp classes regexp classes2 regexp examples For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! regexp syntax regexp syntax2 regexp syntax3 ! regexp syntax4 regexp syntax5 regexp syntax6 ! regexp syntax7 regexp syntax8 regexps ! regexps2 registers registers2 ! regmatch() regrab() regraball() ! regular expression functions ! remainder() remit() remove() ! repeat() replace() rest() ! restarts() restarttime() restrict ! restrict2 restrict3 reverse() ! revwords() right() rjust() ! rloc() rnum() robbery ! room room() round() ! royalty rquota rules ! s() s-function safe ! say score scramble() For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! search() search2 secs() ! secure() semaphores semaphores2 ! semaphores3 semaphores4 semaphores5 ! semaphores6 semipose session ! set() setdiff() setinter() ! setq() setq2 setq3 ! setr() setting-attributes setunion() ! sex shl() shr() ! shuffle() sign() sin() ! slay softcode sort() ! sortby() soundex() soundex2 ! soundlike() soundslike() space() ! spellnum() splice() spoofing ! sqrt() squish() stack ! starttime() stats() stddev() ! step2 step() sticky For more, see Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! strcat() string functions strings ! strinsert() stripansi() strlen() ! strmatch() sub() subj() ! substitutions substitutions2 substitutions3 ! substitutions4 success suspect ! switch() switch2 switchall() ! switches t() table() ! tag() tagwrap() take ! tan() teach tel() ! temple terse think ! time functions time() timefmt() ! timefmt2 timestring() topics ! topics2 transparent transparent2 ! trim() trunc() trust ! trust2 type() types of objects ! types2 u() u2 For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! u3 ucstr() udefault() ! ufun() ufun2 ufun3 ! uldefault() ulocal() ulocal2 ! unfindable unfollow uninspected ! unregistered use user-defined commands ! user-defined2 utctime() utility functions ! v() v-function vadd() ! val() valid() vdim() ! vdot() verbose verbs ! version() visible() visual ! vmag() vmax() vmin() ! vmul() vrml vsub() ! vunit() warnings warnings list ! warnings list2 weirdansi where() ! whisper whisper2 white ! who wildcards wipe() For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! with wizard wordpos() ! words() wrap() xget() ! xor() z_tel zemit() ! zfun() zmo zmp ! zmr zone zone master rooms ! zone masters zone objects zone() ! zones zones2 zones3 ! zones4 ! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! &help -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- --- 1,481 ---- & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! " $-commands $-commands2 ! + 1.50p6 1.50p7 ! 1.50p8 1.50p9 1.50p10 ! 1.50p11 1.50p12 1.50p13 ! 1.50p14 1.50pdune1 1.50pdune2 ! 1.6.0p0 1.6.0p3 1.6.0p4 ! 1.6.0p5 1.6.1p0 1.6.1p1 ! 1.6.10p0 1.6.10p1 1.6.10p2 ! 1.6.10p3 1.6.10p4 1.6.10p5 ! 1.6.10p6 1.6.10p6 1.6.2p0 ! 1.6.2p1 1.6.3p0 1.6.3p1 ! 1.6.3p2 1.6.3p3 1.6.3p4 ! 1.6.3p5 1.6.3p6 1.6.3p7 ! 1.6.4p0 1.6.4p1 1.6.4p2 ! 1.6.5p0 1.6.5p1 1.6.5p2 ! 1.6.5p3 1.6.5p4 1.6.6p0 For more, see Entries-2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 1.6.7p0 1.6.7p1 1.6.7p2 ! 1.6.7p3 1.6.7p4 1.6.7p5 ! 1.6.7p6 1.6.8p0 1.6.8p1 ! 1.6.9p0 1.6.9p1 1.6.9p2 ! 1.6.9p3 1.6.9p4 1.6.9p5 ! 1.6.9p6 1.6.9p7 1.6.9p8 ! 1.6.9p9 1.7.0p0 1.7.0p1 ! 1.7.0p2 1.7.0p3 1.7.0p4 ! 1.7.0p5 1.7.0p6 1.7.0p7 ! 1.7.0p8 1.7.0p9 1.7.0p10 ! 1.7.0p11 1.7.0p11 1.7.1p0 ! 1.7.1p1 1.7.1p2 1.7.1p3 ! 1.7.2p0 1.7.2p1 1.7.2p2 ! 1.7.2p3 1.7.2p4 1.7.2p5 ! 1.7.2p6 1.7.2p7 1.7.2p8 ! 1.7.2p9 1.7.2p10 1.7.2p11 For more, see Entries-3 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-3 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 1.7.2p12 1.7.2p13 1.7.2p14 ! 1.7.2p15 1.7.2p16 1.7.2p17 ! 1.7.2p18 1.7.2p19 1.7.2p20 ! 1.7.2p21 1.7.2p22 1.7.2p23 ! 1.7.2p24 1.7.2p25 1.7.2p26 ! 1.7.2p27 1.7.2p28 1.7.2p29 ! 1.7.2p30 1.7.2p31 1.7.2p32 ! 1.7.2p33 1.7.2p34 1.7.2p35 ! 1.7.3p0 1.7.3p1 1.7.3p2 ! 1.7.3p3 1.7.3p4 1.7.3p5 ! 1.7.3p6 1.7.3p7 1.7.3p8 ! 1.7.3p9 1.7.3p10 1.7.3p11 ! 1.7.3p12 1.7.3p13 1.7.3p14 ! 1.7.4p0 1.7.4p1 1.7.4p2 ! 1.7.4p3 1.7.4p4 1.7.4p5 ! 1.7.4p6 1.7.4p7 1.7.4p8 For more, see Entries-4 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-4 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 1.7.4p9 1.7.4p10 1.7.4p11 ! 1.7.4p12 1.7.4p13 1.7.4p14 ! 1.7.4p15 1.7.4p16 1.7.4p17 ! : ; @-attributes ! @-building @-general @-wizard ! @@ @@() @aahear ! @aclone @aconnect @adeath ! @adescribe @adestroy @adisconnect ! @adrop @aefail @aenter ! @afailure @afollow @agive ! @ahear @aidescribe @aleave ! @alfail @alias @allhalt ! @allquota @amhear @amove ! @apayment @areceive @asuccess ! @atport @atrchown @atrlock ! @attribute @aufail @aunfollow For more, see Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @ause @away @azenter ! @azleave @boot @break ! @cemit @channel @channel2 ! @channel3 @channel4 @channel5 ! @charges @chat @chown ! @chownall @chzone @chzone2 ! @chzoneall @clock @clock2 ! @clone @command @comment ! @config @config attribs @config chat ! @config cmds @config cosmetic @config cosmetic2 ! @config costs @config db @config dump ! @config funcs @config limits @config limits2 ! @config log @config net @config parameters ! @config tiny @conformat @cost ! @cpattr @create @dbck ! @death @decompile @decompile2 For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @decompile3 @describe @destroy ! @destroy2 @dig @dig2 ! @disable @doing @dolist ! @drain @drop @dump ! @ealias @edit @efail ! @elock @emit @enable ! @enter @entrances @eunlock ! @exitformat @failure @filter ! @filter2 @find @firstexit ! @follow @force @force2 ! @forwardlist @function @function2 ! @function3 @function4 @gedit ! @give @grep2 @grep ! @halt @haven @hide ! @idescribe @idle @infilter ! @inprefix @kick @lalias For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @leave @lemit @lfail ! @link @list @listen ! @listen2 @listmotd @lock ! @lock2 @lock3 @lock4 ! @lock5 @lock6 @lock7 ! @lock8 @log @logwipe ! @map2 @mail @malias ! @malias2 @malias3 @malias4 ! @malias5 @map @motd ! @move @mvattr @name ! @nameformat @newpassword @notify ! @nuke @odeath @odescribe ! @odrop @oefail @oemit ! @oenter @ofailure @ofollow ! @ogive @oidescribe @oleave ! @olfail @omove @opayment For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @open @oreceive @osuccess ! @otport @oufail @ounfollow ! @ouse @oxenter @oxleave ! @oxmove @oxtport @ozenter ! @ozleave @parent @password ! @payment @pcreate @pemit ! @pemit2 @poll @poor ! @power @prefix @ps ! @purge @quota @readcache ! @receive @recycle @rejectmotd ! @remit @restart @runout ! @rwall @rwallemit @rwallpose ! @scan @search @search2 ! @search3 @select @set ! @set2 @set3 @sex ! @shutdown @sitelock @sitelock2 For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @sitelock3 @squota @startup ! @stats @success @sweep ! @switch @switch2 @teleport ! @tport @trigger @trigger2 ! @ufail @ulock @undestroy ! @unfollow @unlink @unlock ! @unrecycle @uptime @uptime2 ! @use @uunlock @verb ! @verb2 @verb3 @verb4 ! @version @vrml_url @wait ! @wait2 @wall @wallemit ! @wallpose @warnings @warnings2 ! @warnings3 @wcheck @whereis ! @wipe @wizemit @wizmotd ! @wizpose @wizwall @zemit ! @zenter @zleave \ For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! ^ abode abs() ! acos() action lists action2 ! add() after() ahelp ! alphamax() alphamin() and() ! andflags() anews ansi ! ansi() aposs() art() ! asin() atan() atrlock() ! attrcnt() attrib-ownership attribute functions ! attribute list attributes attributes list ! attributes2 attributes3 attributes4 ! audible audible2 band() ! beep() before() being killed ! bitwise functions bnand() bnot() ! boolean functions boolean values boolean2 ! boolean3 bor() bound() ! brackets() brief builder For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! bxor() cand() capstr() ! case() caseall() cat() ! cd ceil() cemit() ! center() cflags() ch ! changes channel-list channels() ! chat chown_ok clients ! clock() clone() cloudy ! code color commands ! comp() comsys con() ! config() conn() connected ! control controls() convsecs() ! convtime() convutcsecs() copyright ! copyrite cor() cos() ! costs create() credits ! ctime() ctitle() cv ! cwho() dark dark2 For more, see Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! database dbref # dbref functions ! dbref number dbref2 dbrefs ! debug debug2 dec() ! decrypt() default() delete() ! desert destroy_ok die() ! dig() dismiss dist2d() ! dist3d() div() doing ! doing() drop drop-tos ! e() edefault() edit() ! element() elements() elist() ! elock() emit() enactor ! encrypt() endtag() enter ! enter_ok entrances() eq() ! escape() etimefmt() etimefmt2 ! eval() evaluation order evaluation2 ! events examine executor For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! exit() exits exits2 ! exp() extract() failure ! fdiv() filter() filterbool() ! findable() first() fixed ! flag list flags flags list ! flags() flags2 flip() ! floating floating point functions floor() ! floordiv() fmod() fold() ! fold2 folderstats() follow ! followers() force_white foreach() ! foreach2 fullname() function list ! functions functions() functions2 ! gagged gender get ! get() get_eval() give ! global commands globals go ! going goto grab() For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! graball() grep() grepi() ! gt() gte() halt ! hasattr() hasattrp() hasattrpval() ! hasattrval() hasflag() haspower() ! hastype() haven help ! here hidden() home ! home() homes html ! html functions html() i18n ! idle() idlesecs() if() ! ifelse() ilev() inc() ! index index() info ! information functions inherit inherit2 ! insert() interiors interiors2 ! internationalization inum() inventory ! isdaylight() isdbref() isint() ! isnum() isword() itemize() For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! items() iter() iter2 ! itext() judge jump_ok ! jury_ok kill last ! last() lastip lastlogout ! lastsite lattr() lcon() ! lcstr() ldelete() leave ! left() lemit() lexits() ! license light link() ! link_ok linking list functions ! list() listen_parent listening ! listening2 listening3 lists ! lit() ljust() lmath() ! ln() lnum() loc() ! locale localize() locate() ! locate2 lock list lock types ! lock types2 lock() locking For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! locklist locks locktypes ! locktypes2 log() logout ! look look2 looping ! lparent() lsearch() lsearch2 ! lsearchr() lstats() lt() ! lte() lwho() macros ! macros2 mail functions mail() ! mail-admin mail-folders mail-other ! mail-reading mail-sending maildstats() ! mailfrom() mailfstats() mailstats() ! mailstatus() mailsubject() mailtime() ! map() master room match() ! matchall() matching math functions ! max() me mean() ! median() member() merge() ! mid() min() mix() For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! mod() modulo() modulus() ! money money() monitor ! mortal move mtime() ! mudname() mul() munge() ! munge2 munge3 mushcode ! mushcode2 mwho() myopic ! name() nand() nattr() ! nearby() neq() newbie ! newbie2 newbie3 news ! next() no_command no_leave ! no_tel no_warn noleave ! non-standard attributes nor() nospoof ! not() nowarn null() ! num() obj() object parents ! objeval() objmem() oemit() ! on-vacation opaque open() For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! or() orflags() owner() ! page page2 paranoid ! parent parent() parents ! parents2 parents3 parents4 ! parents5 parse() patchlevels ! pcreate() pemit() pi() ! player playermem() pmatch() ! poll() ports() pos() ! pose pose2 poss() ! power() powers list powers list2 ! powers() powers2 pueblo ! pueblo features pueblo() puppet ! puppets puppets2 queue ! quiet quit quota() ! r() r-function rand() ! read regedit() regeditall() For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! regeditalli() regediti() regexp ! regexp classes regexp classes2 regexp examples ! regexp syntax regexp syntax2 regexp syntax3 ! regexp syntax4 regexp syntax5 regexp syntax6 ! regexp syntax7 regexp syntax8 regexps ! regexps2 registers registers2 ! regmatch() regrab() regraball() ! regraballi() regrabi() regrep() ! regular expression functions remainder() ! remit() remove() repeat() ! replace() rest() restarts() ! restarttime() restrict restrict2 ! restrict3 reverse() revwords() ! right() rjust() rloc() ! rnum() room room() ! round() royalty rquota For more, see Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! rules s() s-function ! safe say score ! scramble() search() search2 ! secs() secure() semaphores ! semaphores2 semaphores3 semaphores4 ! semaphores5 semaphores6 semipose ! session set() setdiff() ! setinter() setq() setq2 ! setq3 setr() setting-attributes ! setunion() sex shl() ! shr() shuffle() sign() ! sin() slay softcode ! sort() sortby() soundex() ! soundex2 soundlike() soundslike() ! space() spellnum() splice() ! spoofing sqrt() squish() For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! stack starttime() stats() ! stddev() step2 step() ! sticky strcat() string functions ! strings strinsert() stripansi() ! strlen() strmatch() sub() ! subj() substitutions substitutions2 ! substitutions3 substitutions4 success ! suspect switch() switch2 ! switchall() switches t() ! table() tag() tagwrap() ! take tan() teach ! tel() tel_ok temple ! terse think time functions ! time() timefmt() timefmt2 ! timestring() topics topics2 ! translation transparent transparent2 For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! trim() trunc() trust ! trust2 type() types of objects ! types2 u() u2 ! u3 ucstr() udefault() ! ufun() ufun2 ufun3 ! uldefault() ulocal() ulocal2 ! unfindable unfollow uninspected ! unregistered use user-defined commands ! user-defined2 utctime() utility functions ! v() v-function vadd() ! val() valid() vdim() ! vdot() verbose verbs ! version() visible() visual ! vmag() vmax() vmin() ! vmul() vrml vsub() ! vunit() warnings warnings list ! ! For more, see Entries-23 ! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! & Entries-23 ! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! warnings list2 weirdansi where() ! whisper whisper2 white ! who wildcards wipe() ! with wizard wordpos() ! words() wrap() xget() ! xor() z_tel zemit() ! zfun() zmo zmp ! zmr zone zone master rooms ! zone masters zone objects zone() ! zones zones2 zones3 ! zones4 & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! &help -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- *** 1_7_4.260/game/txt/evt/index.evt Mon, 17 Apr 2000 11:58:36 -0500 dunemush (pennmush/22_index.evt 1.1.1.1 660) --- 1_7_4.279(w)/game/txt/evt/index.evt Mon, 15 Apr 2002 23:25:39 -0500 dunemush (pennmush/22_index.evt 1.1.1.1.1.1 660) *************** *** 1,6 **** & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! help -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- --- 1,7 ---- & Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! ! & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- *** 1_7_4.260/game/txt/Makefile Fri, 17 Nov 2000 09:24:35 -0600 dunemush (pennmush/35_Makefile 1.2 600) --- 1_7_4.279(w)/game/txt/Makefile Fri, 03 May 2002 22:47:03 -0500 dunemush (pennmush/35_Makefile 1.2.1.1 600) *************** *** 10,31 **** all: $(TXT) ! help.txt: hlp/*.hlp compose.sh ./compose.sh hlp mv hlp.txt help.txt ! news.txt: nws/*.nws compose.sh ./compose.sh nws mv nws.txt news.txt ! events.txt: evt/*.evt compose.sh ./compose.sh evt mv evt.txt events.txt ! rules.txt: rules/*.rules compose.sh ./compose.sh rules ! index.txt: index/*.index compose.sh ./compose.sh index clean: --- 10,31 ---- all: $(TXT) ! help.txt: hlp/*.hlp hlp compose.sh ./compose.sh hlp mv hlp.txt help.txt ! news.txt: nws/*.nws nws compose.sh ./compose.sh nws mv nws.txt news.txt ! events.txt: evt/*.evt evt compose.sh ./compose.sh evt mv evt.txt events.txt ! rules.txt: rules/*.rules rules compose.sh ./compose.sh rules ! index.txt: index/*.index index compose.sh ./compose.sh index clean: *** 1_7_4.260/config_h.SH Sat, 30 Jun 2001 08:59:12 -0500 dunemush (pennmush/b/17_config_h.S 1.17.1.2.1.1 660) --- 1_7_4.279(w)/config_h.SH Sun, 28 Apr 2002 15:48:35 -0500 dunemush (pennmush/b/17_config_h.S 1.17.1.2.1.1.1.1 660) *************** *** 713,718 **** --- 713,723 ---- #$d_uptime HAS_UPTIME /**/ #define UPTIME_PATH "$uptime" + /* HAS_DEV_URANDOM: + * This symbol is defined if /dev/urandom is available. + */ + #$d_urandom HAS_DEV_URANDOM /**/ + /* UNION_WAIT: * This symbol if defined indicates to the C program that the argument * for the wait() system call should be declared as 'union wait status' *** 1_7_4.260/src/wiz.c Fri, 07 Dec 2001 23:58:39 -0600 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1 660) --- 1_7_4.279(w)/src/wiz.c Fri, 10 May 2002 21:48:59 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1 660) *************** *** 554,563 **** notify(player, "Sorry."); return; } - if (!Mobile(victim)) { - notify(player, T("You can only force players and things.")); - return; - } if (options.log_forces) { if (Wizard(player)) { /* Log forces by wizards */ --- 554,559 ---- *** 1_7_4.260/src/utils.c Wed, 24 Oct 2001 10:41:46 -0500 dunemush (pennmush/b/27_utils.c 1.30 660) --- 1_7_4.279(w)/src/utils.c Fri, 10 May 2002 21:48:59 -0500 dunemush (pennmush/b/27_utils.c 1.30.1.1 660) *************** *** 17,22 **** --- 17,23 ---- #include #endif #include + #include #include "conf.h" *************** *** 46,51 **** --- 47,57 ---- struct dblist *listcreate _((dbref ref)); void listadd _((struct dblist * head, dbref ref)); void listfree _((struct dblist * head)); + void initialize_mt _((void)); + void init_genrand _((unsigned long)); + void init_by_array _((unsigned long *, int)); + unsigned long genrand_int32 _((void)); + long genrand_int31 _((void)); long get_random_long _((long low, long high)); Malloc_t mush_malloc _((int size, const char *check)); void mush_free _((Malloc_t ptr, const char *check)); *************** *** 274,308 **** } ! #ifndef RAND_MAX /* Yes, RAND_MAX is not portable */ ! #define RAND_MAX LONG_MAX #endif long ! get_random_long(low, high) ! long low; ! long high; ! { ! long range = high - low + 1; ! long num; ! long span; ! if (low > high) return 0; ! for (;;) { ! num = 0; ! high = 1; ! while (high < range) { ! num = (num + 1) * random(); ! if (high > LONG_MAX / RAND_MAX) ! high = LONG_MAX; ! else ! high *= RAND_MAX; ! } ! span = high / range; ! if (num < span * range) ! return (num / span) + low; } } /* Return an object's name, but for exits, return just the first --- 280,505 ---- } ! #define N 624 ! ! /* We use the Mersenne Twister PRNG. It's quite good as PRNGS go, ! * much better than the typical ones provided in system libc's. ! * ! * The following two functions are based on the reference implementation, ! * with changes in the seeding function to use /dev/urandom as a seed ! * if possible. ! * ! * The Mersenne Twister homepage is: ! * http://www.math.keio.ac.jp/~matumoto/emt.html ! * ! * You can get the reference code there. ! */ ! ! ! /* Initializing the array with a seed */ ! void ! initialize_mt(void) ! { ! #ifdef HAS_DEV_URANDOM ! int fd; ! unsigned long buf[N]; ! ! fd = open("/dev/urandom", O_RDONLY); ! if (fd >= 0) { ! int r = read(fd, buf, sizeof buf); ! close(fd); ! if (r <= 0) { ! do_rawlog(LT_ERR, ! "Couldn't read from /dev/urandom! Resorting to normal seeding method."); ! } else { ! do_rawlog(LT_ERR, "Seeded RNG from /dev/urandom"); ! init_by_array(buf, r / sizeof(unsigned long)); ! return; ! } ! } else ! do_rawlog(LT_ERR, ! "Couldn't open /dev/urandom to seed random number generator. Resorting to normal seeding method."); ! #endif + /* Default seeder. Pick a seed that's fairly random */ + #ifdef WIN32 + init_genrand(GetCurrentProcessId() | (time(NULL) << 16)); + #else + init_genrand(getpid() | (time(NULL) << 16)); + #endif + } + + + /* A C-program for MT19937, with initialization improved 2002/1/26.*/ + /* Coded by Takuji Nishimura and Makoto Matsumoto. */ + + /* Before using, initialize the state by using init_genrand(seed) */ + /* or init_by_array(init_key, key_length). */ + + /* This library is free software. */ + /* This library is distributed in the hope that it will be useful, */ + /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ + /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ + + /* Copyright (C) 1997, 2002 Makoto Matsumoto and Takuji Nishimura. */ + /* Any feedback is very welcome. */ + /* http://www.math.keio.ac.jp/matumoto/emt.html */ + /* email: matumoto@math.keio.ac.jp */ + + #include + + /* Period parameters */ + #define M 397 + #define MATRIX_A 0x9908b0dfUL /* constant vector a */ + #define UPPER_MASK 0x80000000UL /* most significant w-r bits */ + #define LOWER_MASK 0x7fffffffUL /* least significant r bits */ + + static unsigned long mt[N]; /* the array for the state vector */ + static int mti = N + 1; /* mti==N+1 means mt[N] is not initialized */ + + /* initializes mt[N] with a seed */ + void + init_genrand(unsigned long s) + { + mt[0] = s & 0xffffffffUL; + for (mti = 1; mti < N; mti++) { + mt[mti] = (1812433253UL * (mt[mti - 1] ^ (mt[mti - 1] >> 30)) + mti); + /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ + /* In the previous versions, MSBs of the seed affect */ + /* only MSBs of the array mt[]. */ + /* 2002/01/09 modified by Makoto Matsumoto */ + mt[mti] &= 0xffffffffUL; + /* for >32 bit machines */ + } + } + + /* initialize by an array with array-length */ + /* init_key is the array for initializing keys */ + /* key_length is its length */ + void + init_by_array(unsigned long init_key[], int key_length) + { + int i, j, k; + init_genrand(19650218UL); + i = 1; + j = 0; + k = (N > key_length ? N : key_length); + for (; k; k--) { + mt[i] = (mt[i] ^ ((mt[i - 1] ^ (mt[i - 1] >> 30)) * 1664525UL)) + + init_key[j] + j; /* non linear */ + mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */ + i++; + j++; + if (i >= N) { + mt[0] = mt[N - 1]; + i = 1; + } + if (j >= key_length) + j = 0; + } + for (k = N - 1; k; k--) { + mt[i] = (mt[i] ^ ((mt[i - 1] ^ (mt[i - 1] >> 30)) * 1566083941UL)) + - i; /* non linear */ + mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */ + i++; + if (i >= N) { + mt[0] = mt[N - 1]; + i = 1; + } + } + + mt[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */ + } + /* generates a random number on [0,0xffffffff]-interval */ + unsigned long + genrand_int32(void) + { + unsigned long y; + static unsigned long mag01[2] = { 0x0UL, MATRIX_A }; + /* mag01[x] = x * MATRIX_A for x=0,1 */ + + if (mti >= N) { /* generate N words at one time */ + int kk; + + if (mti == N + 1) /* if init_genrand() has not been called, */ + init_genrand(5489UL); /* a default initial seed is used */ + + for (kk = 0; kk < N - M; kk++) { + y = (mt[kk] & UPPER_MASK) | (mt[kk + 1] & LOWER_MASK); + mt[kk] = mt[kk + M] ^ (y >> 1) ^ mag01[y & 0x1UL]; + } + for (; kk < N - 1; kk++) { + y = (mt[kk] & UPPER_MASK) | (mt[kk + 1] & LOWER_MASK); + mt[kk] = mt[kk + (M - N)] ^ (y >> 1) ^ mag01[y & 0x1UL]; + } + y = (mt[N - 1] & UPPER_MASK) | (mt[0] & LOWER_MASK); + mt[N - 1] = mt[M - 1] ^ (y >> 1) ^ mag01[y & 0x1UL]; + + mti = 0; + } + + y = mt[mti++]; + + /* Tempering */ + y ^= (y >> 11); + y ^= (y << 7) & 0x9d2c5680UL; + y ^= (y << 15) & 0xefc60000UL; + y ^= (y >> 18); + + return y; + } + + /* generates a random number on [0,0x7fffffff]-interval */ + long + genrand_int31(void) + { + return (long) (genrand_int32() >> 1); + } + + /* Based on MUX's RandomINT32() */ long ! get_random_long(long low, long high) ! { ! unsigned long x, n, n_limit; ! /* Validate parameters */ ! if (high < low) { return 0; ! } else if (high == low) { ! return low; ! } ! ! x = high - low; ! if (LONG_MAX < x) { ! return -1; } + x++; + + /* We can now look for an random number on the interval [0,x-1]. + // + + // In order to be perfectly conservative about not introducing any + // further sources of statistical bias, we're going to call getrand() + // until we get a number less than the greatest representable + // multiple of x. We'll then return n mod x. + // + // N.B. This loop happens in randomized constant time, and pretty + // damn fast randomized constant time too, since + // + // P(UINT32_MAX_VALUE - n < UINT32_MAX_VALUE % x) < 0.5, for any x. + // + // So even for the least desireable x, the average number of times + // we will call getrand() is less than 2. + */ + + n_limit = ULONG_MAX - (ULONG_MAX % x); + + do { + n = genrand_int31(); + } while (n >= n_limit); + + return low + (n % x); } /* Return an object's name, but for exits, return just the first *** 1_7_4.260/src/switchinc.c Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1 660) --- 1_7_4.279(w)/src/switchinc.c Fri, 10 May 2002 21:48:59 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.3 660) *************** *** 1,520 **** { ! "ACCESS", SWITCH_ACCESS ! } ! , ! { ! "ADD", SWITCH_ADD ! } ! , ! { ! "ALL", SWITCH_ALL ! } ! , ! { ! "ANY", SWITCH_ANY ! } ! , ! { ! "ATTRIBS", SWITCH_ATTRIBS ! } ! , ! { ! "BAN", SWITCH_BAN ! } ! , ! { ! "BLIND", SWITCH_BLIND ! } ! , ! { ! "BRIEF", SWITCH_BRIEF ! } ! , ! { ! "CHECK", SWITCH_CHECK ! } ! , ! { ! "CHOWN", SWITCH_CHOWN ! } ! , ! { ! "CLEAR", SWITCH_CLEAR ! } ! , ! { ! "CMD", SWITCH_CMD ! } ! , ! { ! "COMMANDS", SWITCH_COMMANDS ! } ! , ! { ! "CONN", SWITCH_CONN ! } ! , ! { ! "CONNECT", SWITCH_CONNECT ! } ! , ! { ! "CONNECTED", SWITCH_CONNECTED ! } ! , ! { ! "CONTENTS", SWITCH_CONTENTS ! } ! , ! { ! "COSTS", SWITCH_COSTS ! } ! , ! { ! "COUNT", SWITCH_COUNT ! } ! , ! { ! "CREATE", SWITCH_CREATE ! } ! , ! { ! "DATABASE", SWITCH_DATABASE ! } ! , ! { ! "DB", SWITCH_DB ! } ! , ! { ! "DEBUG", SWITCH_DEBUG ! } ! , ! { ! "DECOMPILE", SWITCH_DECOMPILE ! } ! , ! { ! "DEFAULTS", SWITCH_DEFAULTS ! } ! , ! { ! "DELETE", SWITCH_DELETE ! } ! , ! { ! "DELIMIT", SWITCH_DELIMIT ! } ! , ! { ! "DESCRIBE", SWITCH_DESCRIBE ! } ! , ! { ! "DESTROY", SWITCH_DESTROY ! } ! , ! { ! "DISABLE", SWITCH_DISABLE ! } ! , ! { ! "DOWN", SWITCH_DOWN ! } ! , ! { ! "DSTATS", SWITCH_DSTATS ! } ! , ! { ! "EMIT", SWITCH_EMIT ! } ! , ! { ! "ENABLE", SWITCH_ENABLE ! } ! , ! { ! "ERR", SWITCH_ERR ! } ! , ! { ! "EXITS", SWITCH_EXITS ! } ! , ! { ! "FILE", SWITCH_FILE ! } ! , ! { ! "FIRST", SWITCH_FIRST ! } ! , ! { ! "FLAGS", SWITCH_FLAGS ! } ! , ! { ! "FOLDERS", SWITCH_FOLDERS ! } ! , ! { ! "FORWARD", SWITCH_FORWARD ! } ! , ! { ! "FSTATS", SWITCH_FSTATS ! } ! , ! { ! "FULL", SWITCH_FULL ! } ! , ! { ! "FUNCTIONS", SWITCH_FUNCTIONS ! } ! , ! { ! "FWD", SWITCH_FWD ! } ! , ! { ! "GAG", SWITCH_GAG ! } ! , ! { ! "GLOBALS", SWITCH_GLOBALS ! } ! , ! { ! "HEADER", SWITCH_HEADER ! } ! , ! { ! "HERE", SWITCH_HERE ! } ! , ! { ! "HIDE", SWITCH_HIDE ! } ! , ! { ! "ILIST", SWITCH_ILIST ! } ! , ! { ! "INVENTORY", SWITCH_INVENTORY ! } ! , ! { ! "IPRINT", SWITCH_IPRINT ! } ! , ! { ! "JOIN", SWITCH_JOIN ! } ! , ! { ! "LIST", SWITCH_LIST ! } ! , ! { ! "LOWERCASE", SWITCH_LOWERCASE ! } ! , ! { ! "ME", SWITCH_ME ! } ! , ! { ! "MEMBERS", SWITCH_MEMBERS ! } ! , ! { ! "MOD", SWITCH_MOD ! } ! , ! { ! "MORTAL", SWITCH_MORTAL ! } ! , ! { ! "MOTD", SWITCH_MOTD ! } ! , ! { ! "MUTE", SWITCH_MUTE ! } ! , ! { ! "NAME", SWITCH_NAME ! } ! , ! { ! "NO", SWITCH_NO ! } ! , ! { ! "NOEVAL", SWITCH_NOEVAL ! } ! , ! { ! "NOFLAGCOPY", SWITCH_NOFLAGCOPY ! } ! , ! { ! "NOISY", SWITCH_NOISY ! } ! , ! { ! "NOSIG", SWITCH_NOSIG ! } ! , ! { ! "NOSPACE", SWITCH_NOSPACE ! } ! , ! { ! "NOTIFY", SWITCH_NOTIFY ! } ! , ! { ! "NUKE", SWITCH_NUKE ! } ! , ! { ! "OFF", SWITCH_OFF ! } ! , ! { ! "ON", SWITCH_ON ! } ! , ! { ! "OUTSIDE", SWITCH_OUTSIDE ! } ! , ! { ! "OVERRIDE", SWITCH_OVERRIDE ! } ! , ! { ! "PANIC", SWITCH_PANIC ! } ! , ! { ! "PARANOID", SWITCH_PARANOID ! } ! , ! { ! "PLAYERS", SWITCH_PLAYERS ! } ! , ! { ! "PORT", SWITCH_PORT ! } ! , ! { ! "POSE", SWITCH_POSE ! } ! , ! { ! "PRESERVE", SWITCH_PRESERVE ! } ! , ! { ! "PRINT", SWITCH_PRINT ! } ! , ! { ! "PRIVS", SWITCH_PRIVS ! } ! , ! { ! "PURGE", SWITCH_PURGE ! } ! , ! { ! "QUICK", SWITCH_QUICK ! } ! , ! { ! "QUIET", SWITCH_QUIET ! } ! , ! { ! "READ", SWITCH_READ ! } ! , ! { ! "REBOOT", SWITCH_REBOOT ! } ! , ! { ! "REGISTER", SWITCH_REGISTER ! } ! , ! { ! "REMOVE", SWITCH_REMOVE ! } ! , ! { ! "RENAME", SWITCH_RENAME ! } ! , ! { ! "RESTORE", SWITCH_RESTORE ! } ! , ! { ! "RESTRICT", SWITCH_RESTRICT ! } ! , ! { ! "RETROACTIVE", SWITCH_RETROACTIVE ! } ! , ! { ! "ROOM", SWITCH_ROOM ! } ! , ! { ! "ROOMS", SWITCH_ROOMS ! } ! , ! { ! "ROYALTY", SWITCH_ROYALTY ! } ! , ! { ! "SEE", SWITCH_SEE ! } ! , ! { ! "SEEFLAG", SWITCH_SEEFLAG ! } ! , ! { ! "SELF", SWITCH_SELF ! } ! , ! { ! "SEND", SWITCH_SEND ! } ! , ! { ! "SET", SWITCH_SET ! } ! , ! { ! "SILENT", SWITCH_SILENT ! } ! , ! { ! "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS ! } ! , ! { ! "SPEAK", SWITCH_SPEAK ! } ! , ! { ! "STATS", SWITCH_STATS ! } ! , ! { ! "SUMMARY", SWITCH_SUMMARY ! } ! , ! { ! "TABLES", SWITCH_TABLES ! } ! , ! { ! "TAG", SWITCH_TAG ! } ! , ! { ! "TELEPORT", SWITCH_TELEPORT ! } ! , ! { ! "TF", SWITCH_TF ! } ! , ! { ! "THINGS", SWITCH_THINGS ! } ! , ! { ! "TITLE", SWITCH_TITLE ! } ! , ! { ! "TRACE", SWITCH_TRACE ! } ! , ! { ! "UNCLEAR", SWITCH_UNCLEAR ! } ! , ! { ! "UNFOLDER", SWITCH_UNFOLDER ! } ! , ! { ! "UNGAG", SWITCH_UNGAG ! } ! , ! { ! "UNHIDE", SWITCH_UNHIDE ! } ! , ! { ! "UNMUTE", SWITCH_UNMUTE ! } ! , ! { ! "UNTAG", SWITCH_UNTAG ! } ! , ! { ! "UNTIL", SWITCH_UNTIL ! } ! , ! { ! "URGENT", SWITCH_URGENT ! } ! , ! { ! "USEFLAG", SWITCH_USEFLAG ! } ! , ! { ! "WHAT", SWITCH_WHAT ! } ! , ! { ! "WHO", SWITCH_WHO ! } ! , ! { ! "WIPE", SWITCH_WIPE ! } ! , ! { ! "WIZ", SWITCH_WIZ ! } ! , ! { ! "WIZARD", SWITCH_WIZARD ! } ! , ! { ! "YES", SWITCH_YES ! } ! , ! { ! "ZONE", SWITCH_ZONE ! } , --- 1,391 ---- { ! "ACCESS", SWITCH_ACCESS} ! ! , { ! "ADD", SWITCH_ADD} ! ! , { ! "ALL", SWITCH_ALL} ! ! , { ! "ANY", SWITCH_ANY} ! ! , { ! "ATTRIBS", SWITCH_ATTRIBS} ! ! , { ! "BAN", SWITCH_BAN} ! ! , { ! "BLIND", SWITCH_BLIND} ! ! , { ! "BRIEF", SWITCH_BRIEF} ! ! , { ! "CHECK", SWITCH_CHECK} ! ! , { ! "CHOWN", SWITCH_CHOWN} ! ! , { ! "CLEAR", SWITCH_CLEAR} ! ! , { ! "CMD", SWITCH_CMD} ! ! , { ! "COMMANDS", SWITCH_COMMANDS} ! ! , { ! "CONN", SWITCH_CONN} ! ! , { ! "CONNECT", SWITCH_CONNECT} ! ! , { ! "CONNECTED", SWITCH_CONNECTED} ! ! , { ! "CONTENTS", SWITCH_CONTENTS} ! ! , { ! "COSTS", SWITCH_COSTS} ! ! , { ! "COUNT", SWITCH_COUNT} ! ! , { ! "CREATE", SWITCH_CREATE} ! ! , { ! "DATABASE", SWITCH_DATABASE} ! ! , { ! "DB", SWITCH_DB} ! ! , { ! "DEBUG", SWITCH_DEBUG} ! ! , { ! "DECOMPILE", SWITCH_DECOMPILE} ! ! , { ! "DEFAULTS", SWITCH_DEFAULTS} ! ! , { ! "DELETE", SWITCH_DELETE} ! ! , { ! "DELIMIT", SWITCH_DELIMIT} ! ! , { ! "DESCRIBE", SWITCH_DESCRIBE} ! ! , { ! "DESTROY", SWITCH_DESTROY} ! ! , { ! "DISABLE", SWITCH_DISABLE} ! ! , { ! "DOWN", SWITCH_DOWN} ! ! , { ! "DSTATS", SWITCH_DSTATS} ! ! , { ! "EMIT", SWITCH_EMIT} ! ! , { ! "ENABLE", SWITCH_ENABLE} ! ! , { ! "ERR", SWITCH_ERR} ! ! , { ! "EXITS", SWITCH_EXITS} ! ! , { ! "FILE", SWITCH_FILE} ! ! , { ! "FIRST", SWITCH_FIRST} ! ! , { ! "FLAGS", SWITCH_FLAGS} ! ! , { ! "FOLDERS", SWITCH_FOLDERS} ! ! , { ! "FORWARD", SWITCH_FORWARD} ! ! , { ! "FSTATS", SWITCH_FSTATS} ! ! , { ! "FULL", SWITCH_FULL} ! ! , { ! "FUNCTIONS", SWITCH_FUNCTIONS} ! ! , { ! "FWD", SWITCH_FWD} ! ! , { ! "GAG", SWITCH_GAG} ! ! , { ! "GLOBALS", SWITCH_GLOBALS} ! ! , { ! "HEADER", SWITCH_HEADER} ! ! , { ! "HERE", SWITCH_HERE} ! ! , { ! "HIDE", SWITCH_HIDE} ! ! , { ! "ILIST", SWITCH_ILIST} ! ! , { ! "INVENTORY", SWITCH_INVENTORY} ! ! , { ! "IPRINT", SWITCH_IPRINT} ! ! , { ! "JOIN", SWITCH_JOIN} ! ! , { ! "LIST", SWITCH_LIST} ! ! , { ! "LOWERCASE", SWITCH_LOWERCASE} ! ! , { ! "ME", SWITCH_ME} ! ! , { ! "MEMBERS", SWITCH_MEMBERS} ! ! , { ! "MOD", SWITCH_MOD} ! ! , { ! "MORTAL", SWITCH_MORTAL} ! ! , { ! "MOTD", SWITCH_MOTD} ! ! , { ! "MUTE", SWITCH_MUTE} ! ! , { ! "NAME", SWITCH_NAME} ! ! , { ! "NO", SWITCH_NO} ! ! , { ! "NOEVAL", SWITCH_NOEVAL} ! ! , { ! "NOFLAGCOPY", SWITCH_NOFLAGCOPY} ! ! , { ! "NOISY", SWITCH_NOISY} ! ! , { ! "NOSIG", SWITCH_NOSIG} ! ! , { ! "NOSPACE", SWITCH_NOSPACE} ! ! , { ! "NOTIFY", SWITCH_NOTIFY} ! ! , { ! "NUKE", SWITCH_NUKE} ! ! , { ! "OFF", SWITCH_OFF} ! ! , { ! "ON", SWITCH_ON} ! ! , { ! "OUTSIDE", SWITCH_OUTSIDE} ! ! , { ! "OVERRIDE", SWITCH_OVERRIDE} ! ! , { ! "PANIC", SWITCH_PANIC} ! ! , { ! "PARANOID", SWITCH_PARANOID} ! ! , { ! "PLAYERS", SWITCH_PLAYERS} ! ! , { ! "PORT", SWITCH_PORT} ! ! , { ! "POSE", SWITCH_POSE} ! ! , { ! "PRESERVE", SWITCH_PRESERVE} ! ! , { ! "PRINT", SWITCH_PRINT} ! ! , { ! "PRIVS", SWITCH_PRIVS} ! ! , { ! "PURGE", SWITCH_PURGE} ! ! , { ! "QUICK", SWITCH_QUICK} ! ! , { ! "QUIET", SWITCH_QUIET} ! ! , { ! "READ", SWITCH_READ} ! ! , { ! "REBOOT", SWITCH_REBOOT} ! ! , { ! "REGISTER", SWITCH_REGISTER} ! ! , { ! "REMOVE", SWITCH_REMOVE} ! ! , { ! "RENAME", SWITCH_RENAME} ! ! , { ! "RESTORE", SWITCH_RESTORE} ! ! , { ! "RESTRICT", SWITCH_RESTRICT} ! ! , { ! "RETROACTIVE", SWITCH_RETROACTIVE} ! ! , { ! "ROOM", SWITCH_ROOM} ! ! , { ! "ROOMS", SWITCH_ROOMS} ! ! , { ! "ROYALTY", SWITCH_ROYALTY} ! ! , { ! "SEE", SWITCH_SEE} ! ! , { ! "SEEFLAG", SWITCH_SEEFLAG} ! ! , { ! "SELF", SWITCH_SELF} ! ! , { ! "SEND", SWITCH_SEND} ! ! , { ! "SET", SWITCH_SET} ! ! , { ! "SILENT", SWITCH_SILENT} ! ! , { ! "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS} ! ! , { ! "SPEAK", SWITCH_SPEAK} ! ! , { ! "STATS", SWITCH_STATS} ! ! , { ! "SUMMARY", SWITCH_SUMMARY} ! ! , { ! "TABLES", SWITCH_TABLES} ! ! , { ! "TAG", SWITCH_TAG} ! ! , { ! "TELEPORT", SWITCH_TELEPORT} ! ! , { ! "TF", SWITCH_TF} ! ! , { ! "THINGS", SWITCH_THINGS} ! ! , { ! "TITLE", SWITCH_TITLE} ! ! , { ! "TRACE", SWITCH_TRACE} ! ! , { ! "UNCLEAR", SWITCH_UNCLEAR} ! ! , { ! "UNFOLDER", SWITCH_UNFOLDER} ! ! , { ! "UNGAG", SWITCH_UNGAG} ! ! , { ! "UNHIDE", SWITCH_UNHIDE} ! ! , { ! "UNMUTE", SWITCH_UNMUTE} ! ! , { ! "UNTAG", SWITCH_UNTAG} ! ! , { ! "UNTIL", SWITCH_UNTIL} ! ! , { ! "URGENT", SWITCH_URGENT} ! ! , { ! "USEFLAG", SWITCH_USEFLAG} ! ! , { ! "WHAT", SWITCH_WHAT} ! ! , { ! "WHO", SWITCH_WHO} ! ! , { ! "WIPE", SWITCH_WIPE} ! ! , { ! "WIZ", SWITCH_WIZ} ! ! , { ! "WIZARD", SWITCH_WIZARD} ! ! , { ! "YES", SWITCH_YES} ! ! , { ! "ZONE", SWITCH_ZONE} ! , *** 1_7_4.260/src/move.c Mon, 11 Mar 2002 17:59:05 -0600 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2 660) --- 1_7_4.279(w)/src/move.c Fri, 10 May 2002 21:48:58 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2 660) *************** *** 782,787 **** --- 782,791 ---- if (arg && *arg) { /* Who do we want to follow? */ leader = match_result(player, arg, NOTYPE, MAT_NEARBY); + if (leader == AMBIGUOUS) { + notify(player, T("I can't tell which one to follow.")); + return; + } if (!GoodObject(leader) || !GoodObject(Location(player)) || (IsPlayer(leader) && !Connected(leader)) || ((DarkLegal(leader) || (Dark(Location(player)) && !Light(leader))) && *************** *** 830,842 **** if (arg && *arg) { /* Who do we want to stop following? */ leader = match_result(player, arg, NOTYPE, MAT_OBJECTS); if (!GoodObject(leader)) { ! notify(player, T("I don't recognize who you want to stop following.")); return; } /* Are we following them? */ if (!is_following(player, leader)) { ! notify_format(player, T("You're not following %s"), Name(leader)); return; } /* Ok, looks good */ --- 834,850 ---- if (arg && *arg) { /* Who do we want to stop following? */ leader = match_result(player, arg, NOTYPE, MAT_OBJECTS); + if (leader == AMBIGUOUS) { + notify(player, T("I can't tell which one to stop following.")); + return; + } if (!GoodObject(leader)) { ! notify(player, T("I don't see that here.")); return; } /* Are we following them? */ if (!is_following(player, leader)) { ! notify_format(player, T("You're not following %s."), Name(leader)); return; } /* Ok, looks good */ *** 1_7_4.260/src/look.c Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2 660) --- 1_7_4.279(w)/src/look.c Fri, 10 May 2002 21:48:58 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.1 660) *************** *** 1199,1204 **** --- 1199,1208 ---- ATTR *ptr; char msg[BUFFER_LEN]; char *bp; + + if (AL_FLAGS(atr) & AF_NODUMP) + return 0; + ptr = atr_match(AL_NAME(atr)); bp = msg; safe_str(dh->prefix, msg, &bp); *** 1_7_4.260/src/game.c Tue, 02 Apr 2002 08:15:28 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1 660) --- 1_7_4.279(w)/src/game.c Fri, 10 May 2002 21:48:58 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1 660) *************** *** 79,85 **** #endif /* fix to HP-UX getrusage() braindamage */ #include "confmagic.h" - #ifdef HAS_WAITPID #define WAIT_TYPE int #else --- 79,84 ---- *************** *** 102,107 **** --- 101,108 ---- extern dbref cplr; extern char ccom[]; + extern void initialize_mt(void); + int paranoid_dump = 0; /* if paranoid, scan before dumping */ int paranoid_checkpt = 0; /* write out an okay message every x objs */ extern long indb_flags; *************** *** 142,147 **** --- 143,150 ---- dbref orator = NOTHING; + static Pid_t forked_dump_pid = -1; + /* * used to allocate storage for temporary stuff, cleared before command * execution *************** *** 475,497 **** Pid_t pid; #ifdef HAS_WAITPID ! while ((pid = waitpid(-1, &my_stat, WNOHANG)) > 0) ; #else ! while ((pid = wait3(&my_stat, WNOHANG, 0)) > 0) ; #endif ! #ifdef INFO_SLAVE ! if (pid == info_slave_pid) { ! do_rawlog(LT_ERR, "info_slave on pid %d exited!", pid); ! info_slave_state = 0; ! info_slave_pid = -1; ! } #endif ! #ifndef HAS_SIGACTION /* If we have sigaction, the signals are reliable */ #ifndef SIGNALS_KEPT ! signal(SIGCLD, (Sigfunc) reaper); /* do this last or it'll loop */ #endif #endif #ifndef VOIDSIG --- 478,510 ---- Pid_t pid; #ifdef HAS_WAITPID ! while ((pid = waitpid(-1, &my_stat, WNOHANG)) > 0) #else ! while ((pid = wait3(&my_stat, WNOHANG, 0)) > 0) #endif ! { #ifdef INFO_SLAVE ! if (info_slave_pid > -1 && pid == info_slave_pid) { ! do_rawlog(LT_ERR, T("info_slave on pid %d exited!"), pid); ! info_slave_state = 0; ! info_slave_pid = -1; ! } else #endif ! if (forked_dump_pid > -1 && pid == forked_dump_pid) { ! /* Most failures are handled by the forked mush already */ ! if (WIFSIGNALED(my_stat)) { ! do_rawlog(LT_ERR, T("ERROR! forking dump exited with signal %d"), ! WTERMSIG(my_stat)); ! flag_broadcast(WIZARD | ROYALTY, 0, ! T("GAME: ERROR! Forking database save failed!")); ! } ! forked_dump_pid = -1; ! } ! } #ifndef HAS_SIGACTION /* If we have sigaction, the signals are reliable */ #ifndef SIGNALS_KEPT ! signal(SIGCHLD, (Sigfunc) reaper); /* do this last or it'll loop */ #endif #endif #ifndef VOIDSIG *************** *** 531,537 **** flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE); child = 0; nofork = 1; ! } #ifdef HAS_SETPRIORITY else { /* Lower the priority of the child to make parent more responsive */ --- 544,552 ---- flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE); child = 0; nofork = 1; ! } else if (child > 0) ! forked_dump_pid = child; ! #ifdef HAS_SETPRIORITY else { /* Lower the priority of the child to make parent more responsive */ *************** *** 792,805 **** read_access_file(); /* initialize random number generator */ ! srandom(getpid()); /* set up dumper */ strcpy(dumpfile, outfile); init_timer(); #ifndef macintosh #ifndef WIN32 ! signal(SIGCLD, (void *) reaper); #endif #endif --- 807,820 ---- read_access_file(); /* initialize random number generator */ ! initialize_mt(); /* set up dumper */ strcpy(dumpfile, outfile); init_timer(); #ifndef macintosh #ifndef WIN32 ! signal(SIGCHLD, (void *) reaper); #endif #endif *** 1_7_4.260/src/funstr.c Sat, 23 Feb 2002 14:40:55 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1 660) --- 1_7_4.279(w)/src/funstr.c Fri, 10 May 2002 21:48:57 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) *************** *** 944,955 **** { int s; ! if (!is_integer(args[0])) { ! safe_str(T(e_int), buff, bp); return; } s = parse_integer(args[0]); - safe_fill(' ', s, buff, bp); } --- 944,954 ---- { int s; ! if (!is_uinteger(args[0])) { ! safe_str(T(e_uint), buff, bp); return; } s = parse_integer(args[0]); safe_fill(' ', s, buff, bp); } *************** *** 981,986 **** --- 980,986 ---- } /* All the safe tags from HTML 4.0 */ + void init_tag_hashtab _((void)); void init_tag_hashtab() { *** 1_7_4.260/src/funmath.c Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/c/15_funmath.c 1.39.1.1.1.1 660) --- 1_7_4.279(w)/src/funmath.c Fri, 10 May 2002 21:48:57 -0500 dunemush (pennmush/c/15_funmath.c 1.39.1.1.1.1.1.1 660) *************** *** 1148,1159 **** * a multiple of 3. */ #define add_zeros(p) \ - sprintf(num, "000"); \ m = strlen(p) % 3; \ ! if (m) \ ! sprintf(num + 3 - m, p); \ ! else \ ! sprintf(num, p); \ p = num; /* ARGSUSED */ --- 1148,1159 ---- * a multiple of 3. */ #define add_zeros(p) \ m = strlen(p) % 3; \ ! switch (m) { \ ! case 0: strcpy(num, p); break; \ ! case 1: num[0] = '0'; num[1] = '0'; strcpy(num + 2, p); break; \ ! case 2: num[0] = '0'; strcpy(num + 1, p); break; \ ! } \ p = num; /* ARGSUSED */ *** 1_7_4.260/src/funlist.c Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/c/16_funlist.c 1.3.1.1.1.5.1.2.1.1.1.1.1.4.1.2.1.2.1.19.1.2.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.2.1.1.1.1.1.1 660) --- 1_7_4.279(w)/src/funlist.c Fri, 10 May 2002 21:48:57 -0500 dunemush (pennmush/c/16_funlist.c 1.3.1.1.1.5.1.2.1.1.1.1.1.4.1.2.1.2.1.19.1.2.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.1.2.1.1.3.1.2.1.1.1.1.1.1.1.1 660) *************** *** 1230,1235 **** --- 1230,1236 ---- #define CACHE_SIZE 8 static NVAL cstart[CACHE_SIZE]; static NVAL cend[CACHE_SIZE]; + static char csep[CACHE_SIZE][BUFFER_LEN]; static char cresult[CACHE_SIZE][BUFFER_LEN]; static int cpos; char *cp; *************** *** 1268,1274 **** osep = args[2]; } for (k = 0; k < CACHE_SIZE; k++) { ! if (cstart[k] == start && cend[k] == end) { safe_str(cresult[k], buff, bp); return; } --- 1269,1275 ---- osep = args[2]; } for (k = 0; k < CACHE_SIZE; k++) { ! if (cstart[k] == start && cend[k] == end && !strcmp(csep[k], osep)) { safe_str(cresult[k], buff, bp); return; } *************** *** 1276,1281 **** --- 1277,1283 ---- cpos = (cpos + 1) % CACHE_SIZE; cstart[cpos] = start; cend[cpos] = end; + strcpy(csep[cpos], osep); cp = cresult[cpos]; istart = (int) start; *** 1_7_4.260/src/extchat.c Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1 660) --- 1_7_4.279(w)/src/extchat.c Fri, 10 May 2002 21:48:57 -0500 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) *************** *** 1115,1123 **** return; } if (!Chan_Can_Speak(chan, player)) { ! notify_format(player, ! T("Sorry, you're not allowed to speak on channel <%s>."), ! ChanName(chan)); return; } --- 1115,1126 ---- return; } if (!Chan_Can_Speak(chan, player)) { ! if (Chan_Can_See(chan, player)) ! notify_format(player, ! T("Sorry, you're not allowed to speak on channel <%s>."), ! ChanName(chan)); ! else ! notify(player, T("Sorry, you're not allowed to speak on that channel.")); return; } *************** *** 1208,1216 **** return; } if (!Chan_Can_Speak(chan, player)) { ! notify_format(player, ! T("Sorry, you're not allowed to speak on channel <%s>."), ! ChanName(chan)); return; } if (!msg || !*msg) { --- 1211,1222 ---- return; } if (!Chan_Can_Speak(chan, player)) { ! if (Chan_Can_See(chan, player)) ! notify_format(player, ! T("Sorry, you're not allowed to speak on channel <%s>."), ! ChanName(chan)); ! else ! notify(player, T("Sorry, you're not allowed to speak on that channel.")); return; } if (!msg || !*msg) { *************** *** 1527,1533 **** { CHAN *c = NULL; CHANUSER *u; ! char *scan; if (!name || !*name) { notify(player, T("You must specify a channel.")); --- 1533,1539 ---- { CHAN *c = NULL; CHANUSER *u; ! const char *scan; if (!name || !*name) { notify(player, T("You must specify a channel.")); *************** *** 2012,2018 **** strcpy(cleanp, remove_markup(ChanName(c), NULL)); if (string_prefix(cleanp, cleanname)) { found++; ! if (!(Hasprivs(player) || Chan_Can_Modify(c, player) || (ChanCreator(c) == player))) { notify_format(player, T("CHAT: No permission to decompile <%s>"), ChanName(c)); --- 2018,2024 ---- strcpy(cleanp, remove_markup(ChanName(c), NULL)); if (string_prefix(cleanp, cleanname)) { found++; ! if (!(See_All(player) || Chan_Can_Modify(c, player) || (ChanCreator(c) == player))) { notify_format(player, T("CHAT: No permission to decompile <%s>"), ChanName(c)); *** 1_7_4.260/src/cque.c Sun, 17 Mar 2002 13:17:29 -0600 dunemush (pennmush/c/28_cque.c 1.36.1.5.1.1.1.1.1.1.1.2 660) --- 1_7_4.279(w)/src/cque.c Fri, 10 May 2002 21:48:56 -0500 dunemush (pennmush/c/28_cque.c 1.36.1.5.1.1.1.1.1.1.1.2.1.1 660) *************** *** 553,560 **** } static int ! drain_helper(dbref player, dbref thing, char const *pattern, ATTR *atr, ! void *args __attribute__ ((__unused__))) { if (waitable_attr(thing, AL_NAME(atr))) (void) atr_clr(thing, AL_NAME(atr), GOD); --- 553,562 ---- } static int ! drain_helper(dbref player ! __attribute__ ((__unused__)), dbref thing, char const *pattern ! __attribute__ ((__unused__)), ATTR *atr, void *args ! __attribute__ ((__unused__))) { if (waitable_attr(thing, AL_NAME(atr))) (void) atr_clr(thing, AL_NAME(atr), GOD); *** 1_7_4.260/src/bsd.c Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1 660) --- 1_7_4.279(w)/src/bsd.c Fri, 10 May 2002 21:48:55 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) *************** *** 127,132 **** --- 127,141 ---- #include "attrib.h" #include "game.h" #include "confmagic.h" + #ifdef HAS_WAITPID + #define WAIT_TYPE int + #else + #ifdef UNION_WAIT + #define WAIT_TYPE union wait + #else + #define WAIT_TYPE int + #endif + #endif /* Define to enable experimental conversion of accented characters to HTML entities for Pueblo. Meant for European character sets */ *************** *** 159,164 **** --- 168,174 ---- extern int reserved; static int extrafd; int shutdown_flag = 0; + extern int paranoid_dump; /* from game.c */ static int login_number = 0; static int under_limit = 1; *************** *** 2048,2054 **** } if (signal_dump_flag) { - extern int paranoid_dump; /* from game.c */ paranoid_dump = 0; do_rawlog(LT_CHECK, "DUMP by external signal"); fork_and_dump(1); --- 2058,2063 ---- *************** *** 2979,2986 **** if (info_slave_state != 0) { if (info_slave_pid > 0) { do_rawlog(LT_ERR, "kill: killing info_slave_pid %d", info_slave_pid); ! closesocket(info_slave); ! kill(info_slave_pid, 15); info_slave_pid = -1; } info_slave_state = 0; --- 2988,3021 ---- if (info_slave_state != 0) { if (info_slave_pid > 0) { do_rawlog(LT_ERR, "kill: killing info_slave_pid %d", info_slave_pid); ! #ifdef HAS_SIGPROCMASK ! { ! sigset_t orig, mask; ! WAIT_TYPE my_stat; ! Pid_t pid; ! struct timeval pad; ! ! sigemptyset(&mask); ! sigaddset(&mask, SIGCHLD); ! sigprocmask(SIG_BLOCK, &mask, &orig); ! #endif ! closesocket(info_slave); ! kill(info_slave_pid, 15); ! #ifdef HAS_SIGPROCMASK ! /* Have to wait long enough for the info_slave to actually ! die. This will hopefully be enough time. */ ! pad.tv_sec = 0; ! pad.tv_usec = 100; ! select(0, NULL, NULL, NULL, &pad); ! ! #ifdef HAS_WAITPID ! pid = waitpid(info_slave_pid, &my_stat, WNOHANG); ! #else ! pid = wait3(&my_stat, WNOHANG, 0); ! #endif ! sigprocmask(SIG_SETMASK, &orig, NULL); ! } ! #endif info_slave_pid = -1; } info_slave_state = 0; *** 1_7_4.260/src/access.c Thu, 31 May 2001 11:19:20 -0500 dunemush (pennmush/c/43_access.c 1.11.1.2 660) --- 1_7_4.279(w)/src/access.c Fri, 10 May 2002 21:48:55 -0500 dunemush (pennmush/c/43_access.c 1.11.1.2.1.1 660) *************** *** 197,204 **** do_log(LT_ERR, GOD, GOD, T("No %s file found."), ACCESS_FILE); retval = 0; } else { ! fgets(buf, BUFFER_LEN, fp); ! while (!feof(fp)) { /* Strip newline */ if ((p = strchr(buf, '\n'))) *p = '\0'; --- 197,203 ---- do_log(LT_ERR, GOD, GOD, T("No %s file found."), ACCESS_FILE); retval = 0; } else { ! while (fgets(buf, BUFFER_LEN, fp)) { /* Strip newline */ if ((p = strchr(buf, '\n'))) *p = '\0'; *************** *** 236,242 **** retval = 0; } } - fgets(buf, BUFFER_LEN, fp); } retval = 1; fclose(fp); --- 235,240 ---- *** 1_7_4.260/hdrs/version.h Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.1.1.6 660) --- 1_7_4.279(w)/hdrs/version.h Fri, 10 May 2002 21:49:01 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.1.1.7 660) *************** *** 1,2 **** ! #define VERSION "PennMUSH version 1.7.4 patchlevel 17 [04/14/2002]" ! #define SHORTVN "PennMUSH 1.7.4p17" --- 1,2 ---- ! #define VERSION "PennMUSH version 1.7.4 patchlevel 18 [05/06/2002]" ! #define SHORTVN "PennMUSH 1.7.4p18" *** 1_7_4.260/hdrs/extmail.h Sat, 10 Feb 2001 09:13:21 -0600 dunemush (pennmush/d/15_extmail.h 1.6 660) --- 1_7_4.279(w)/hdrs/extmail.h Fri, 10 May 2002 21:49:00 -0500 dunemush (pennmush/d/15_extmail.h 1.6.1.1.1.1 660) *************** *** 37,43 **** #define Unread(m) (!Read(m)) #define All(ms) (ms.flags & M_ALL) #define AllInFolder(ms) (ms.flags & M_FOLDER) ! #define MSFolder(ms) ((ms.flags & ~M_FMASK) >> 8) typedef unsigned int mail_flag; --- 37,43 ---- #define Unread(m) (!Read(m)) #define All(ms) (ms.flags & M_ALL) #define AllInFolder(ms) (ms.flags & M_FOLDER) ! #define MSFolder(ms) ((int)((ms.flags & ~M_FMASK) >> 8U)) typedef unsigned int mail_flag; *** 1_7_4.260/hdrs/externs.h Mon, 25 Feb 2002 16:04:41 -0600 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.8.2.1.1.2.1.1.1.1 660) --- 1_7_4.279(w)/hdrs/externs.h Fri, 10 May 2002 21:49:00 -0500 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.8.2.1.1.2.1.1.1.1.1.1 660) *************** *** 11,17 **** #ifdef I_LIBINTL #include #endif ! #ifdef HAS_GETTEXT #define T(str) gettext(str) #define N_(str) gettext_noop(str) #else --- 11,17 ---- #ifdef I_LIBINTL #include #endif ! #if defined(HAS_GETTEXT) && !defined(DONT_TRANSLATE) #define T(str) gettext(str) #define N_(str) gettext_noop(str) #else *** 1_7_4.260/hdrs/atr_tab.h Fri, 19 Jan 2001 09:27:13 -0600 dunemush (pennmush/d/26_atr_tab.h 1.15 660) --- 1_7_4.279(w)/hdrs/atr_tab.h Fri, 10 May 2002 21:49:00 -0500 dunemush (pennmush/d/26_atr_tab.h 1.15.1.1 660) *************** *** 68,78 **** {(char *) "INPREFIX", AF_NOPROG, NULL, 0, NULL}, {(char *) "LALIAS", AF_NOPROG, NULL, 0, NULL}, {(char *) "LAST", AF_VISUAL | AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, ! {(char *) "LASTIP", AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTFAILED", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTLOGOUT", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTPAGED", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, ! {(char *) "LASTSITE", AF_LOCKED, NULL, 0, NULL}, {(char *) "LEAVE", AF_NOPROG, NULL, 0, NULL}, {(char *) "LFAIL", AF_NOPROG, NULL, 0, NULL}, {(char *) "LISTEN", AF_NOPROG, NULL, 0, NULL}, --- 68,78 ---- {(char *) "INPREFIX", AF_NOPROG, NULL, 0, NULL}, {(char *) "LALIAS", AF_NOPROG, NULL, 0, NULL}, {(char *) "LAST", AF_VISUAL | AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, ! {(char *) "LASTIP", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTFAILED", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTLOGOUT", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LASTPAGED", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, ! {(char *) "LASTSITE", AF_WIZARD | AF_LOCKED, NULL, 0, NULL}, {(char *) "LEAVE", AF_NOPROG, NULL, 0, NULL}, {(char *) "LFAIL", AF_NOPROG, NULL, 0, NULL}, {(char *) "LISTEN", AF_NOPROG, NULL, 0, NULL}, *** 1_7_4.260/Configure Mon, 11 Mar 2002 18:08:58 -0600 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1 710) --- 1_7_4.279(w)/Configure Sun, 28 Apr 2002 15:48:35 -0500 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1.1.1 710) *************** *** 338,343 **** --- 338,344 ---- d_timelocal='' d_toupper='' d_uptime='' + d_urandom='' d_uwait3='' d_uwait='' d_voidsig='' *************** *** 5033,5038 **** --- 5034,5048 ---- fi set d_uptime; eval $setvar + : see if /dev/urandom is present + echo " " + if $test -c /dev/urandom ; then + val="$define" + else + val="$undef" + fi + set d_urandom; eval $setvar + : see if union wait is available echo " " set X $cppflags *************** *** 6606,6611 **** --- 6616,6622 ---- d_timelocal='$d_timelocal' d_toupper='$d_toupper' d_uptime='$d_uptime' + d_urandom='$d_urandom' d_usgnames='$d_usgnames' d_uwait3='$d_uwait3' d_uwait='$d_uwait' *** 1_7_4.260/win32/funs.h Mon, 15 Apr 2002 21:33:03 -0500 dunemush (pennmush/f/12_funs.h 1.11.1.9.2.8.2.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) --- 1_7_4.279(w)/win32/funs.h Mon, 06 May 2002 16:02:56 -0500 dunemush (pennmush/f/12_funs.h 1.11.1.9.2.8.2.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) *************** *** 292,294 **** --- 292,295 ---- FUNCTION_PROTO(fun_zemit); FUNCTION_PROTO(fun_zfun); FUNCTION_PROTO(fun_zone); + FUNCTION_PROTO(local_fun_silly); *** 1_7_4.260/hdrs/mushtype.h Thu, 19 Oct 2000 09:30:20 -0500 dunemush (pennmush/f/20_mushtype.h 1.2 660) --- 1_7_4.279(w)/hdrs/mushtype.h Fri, 10 May 2002 21:49:00 -0500 dunemush (pennmush/f/20_mushtype.h 1.2.1.1.1.1 660) *************** *** 60,63 **** --- 60,64 ---- typedef struct channel CHAN; #endif + #endif