[PENNMUSH-ANNOUNCE] 1.7.6-patch02

dunemush@tala.mede.uic.edu dunemush at tala.mede.uic.edu
Wed Dec 18 04:37:39 2002


This is patch02 to PennMUSH 1.7.6. After applying this patch, you will
have version 1.7.6p2

To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
	patch -p1 < 1.7.6-patch02
	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.

Then @shutdown and restart your MUSH.
    - Alan/Javelin

In this patch:

Minor changes:
   * An invalid range argument to @search/lsearch is now coerced
     to be the lowest or highest dbref, as appropriate. The search
     range is also now inclusive. And lsearch(<player>) works.
     Suggested by Philip Mak.
   * mushcnf.dst now includes a default value for call_limit.
     Suggested by Philip Mak.
   * Testing for whether the mush is already running in the
     restart script has been improved by Philip Mak.
Internationalization:
   * Polish translation files (partial) are now being distributed.
Fixes:
   * Fix to win32 warnings. [EEH]
   * Under Win32, a failed accept() call in bsd.c would not be
     correctly handled. Report by BladedThoth@M*U*S*H.
   * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H.
   * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H.
   * Modifiying locks now updates the object's modification time.
     Reported by Philip Mak.


Prereq: 1.7.6p1
*** 1_7_6.57/Patchlevel Mon, 09 Dec 2002 10:15:18 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.1 600)
--- 1_7_6.69(w)/Patchlevel Tue, 17 Dec 2002 22:33:13 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.2 600)
***************
*** 1,2 ****
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p1
--- 1,2 ----
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p2
*** 1_7_6.57/CHANGES Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1 600)
--- 1_7_6.69(w)/CHANGES Tue, 17 Dec 2002 22:32:59 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.9.1.1.1.1 600)
***************
*** 18,23 ****
--- 18,46 ----
  
  ==========================================================================
  
+ Version 1.7.6 patchlevel 2                      December 17, 2002
+ 
+ Minor changes:
+    * An invalid range argument to @search/lsearch is now coerced
+      to be the lowest or highest dbref, as appropriate. The search
+      range is also now inclusive. And lsearch(<player>) works.
+      Suggested by Philip Mak.
+    * mushcnf.dst now includes a default value for call_limit.
+      Suggested by Philip Mak.
+    * Testing for whether the mush is already running in the
+      restart script has been improved by Philip Mak.
+ Internationalization:
+    * Polish translation files (partial) are now being distributed.
+ Fixes:
+    * Fix to win32 warnings. [EEH]
+    * Under Win32, a failed accept() call in bsd.c would not be
+      correctly handled. Report by BladedThoth@M*U*S*H.
+    * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H.
+    * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H.
+    * Modifiying locks now updates the object's modification time.
+      Reported by Philip Mak.
+ 
+ 
  Version 1.7.6 patchlevel 1                      November 26, 2002
  
  Minor changes:
*** 1_7_6.57/game/txt/hlp/pennvers.hlp Sun, 08 Dec 2002 22:35:42 -0600 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.1.5.1.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1 600)
--- 1_7_6.69(w)/game/txt/hlp/pennvers.hlp Tue, 17 Dec 2002 22:33:28 -0600 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.1.5.1.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.7.1.1.1.1 600)
***************
*** 1,5 ****
  & changes
! & 1.7.6p1
  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 <name of whatever>'. 'help credits'
--- 1,5 ----
  & changes
! & 1.7.6p2
  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 <name of whatever>'. 'help credits'
***************
*** 11,16 ****
--- 11,40 ----
  A list of the patchlevels associated with each release can
  be read in 'help patchlevels'.
  
+ Version 1.7.6 patchlevel 2                      December 17, 2002
+ 
+ Minor changes:
+    * An invalid range argument to @search/lsearch is now coerced
+      to be the lowest or highest dbref, as appropriate. The search
+      range is also now inclusive. And lsearch(<player>) works.
+      Suggested by Philip Mak.
+    * mushcnf.dst now includes a default value for call_limit.
+      Suggested by Philip Mak.
+    * Testing for whether the mush is already running in the
+      restart script has been improved by Philip Mak.
+ Internationalization:
+    * Polish translation files (partial) are now being distributed.
+ Fixes:
+    * Fix to win32 warnings. [EEH]
+    * Under Win32, a failed accept() call in bsd.c would not be
+      correctly handled. Report by BladedThoth@M*U*S*H.
+    * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H.
+    * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H.
+    * Modifiying locks now updates the object's modification time.
+      Reported by Philip Mak.
+ 
+ 
+ & 1.7.6p1
  Version 1.7.6 patchlevel 1                      November 26, 2002
  
  Minor changes:
***************
*** 5747,5753 ****
  For information on a specific patchlevel of one of the versions listed,
  type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
  
! 1.7.6: 0, 1
  1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
         19, 20
--- 5771,5777 ----
  For information on a specific patchlevel of one of the versions listed,
  type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
  
! 1.7.6: 0, 1, 2
  1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
         19, 20
*** 1_7_6.57/game/txt/hlp/pennfunc.hlp Mon, 02 Dec 2002 18:14:17 -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.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.1.1.1 600)
--- 1_7_6.69(w)/game/txt/hlp/pennfunc.hlp Wed, 11 Dec 2002 15:32:36 -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.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.1.1.1.1.3 600)
***************
*** 1897,1904 ****
  & LSEARCH()
  & SEARCH()
  & LSEARCHR()
!   lsearch(<player>, <class>, <restriction>[, <low>[, <high>]])
!   lsearchr(<player>, <class>, <restriction>[, <low>[, <high>]])
   
    This function is similar to the @search command, except it returns
    just a list of dbref numbers. It is computationally expensive, and
--- 1897,1904 ----
  & LSEARCH()
  & SEARCH()
  & LSEARCHR()
!   lsearch(<player>[, <class>[, <restriction>[, <low>[, <high>]]]])
!   lsearchr(<player>[, <class>[, <restriction>[, <low>[, <high>]]]])
   
    This function is similar to the @search command, except it returns
    just a list of dbref numbers. It is computationally expensive, and
***************
*** 2529,2535 ****
  & RAND()
    rand(<num>)
  
!   Rand returns an integer between 0 and num-1.
    If called with an invalid argument, rand() returns an error message
    beginning with #-1.
  & REGEDIT()
--- 2529,2535 ----
  & RAND()
    rand(<num>)
  
!   Rand returns an integer between 0 and num-1, inclusive.
    If called with an invalid argument, rand() returns an error message
    beginning with #-1.
  & REGEDIT()
***************
*** 3408,3432 ****
    Example:
    
    > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)]
!   >
!  &testfun object=[strlen(v(0))] [ucstr(v(0))]
    > test string
!   Foo says, "6 STRING"
    string
    
!   See "help UFUN3" for more.
!  
! & U3
! & UFUN3
!   A user-defined function may be as complex as you want it to be.
    If the evaluation order doesn't quite seem right, adding escapes
    or breaking up the expression will probably help.
      
-   Excessive recursion in either a UFUN() or ZFUN() will cause it to
-   return "#-1 EXCESSIVE RECURSION ERROR", and sets the object HALT.
-   An object which is HALT may not evaluate either UFUN() or ZFUN();
-   those functions will then return "#-1 OBJECT HALTED".
-   
  & UCSTR()
    ucstr(<string>)
  
--- 3408,3424 ----
    Example:
    
    > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)]
!   > &testfun object=[strlen(v(0))] [ucstr(v(0))]
    > test string
!   Object says, "6 STRING"
    string
    
!   A user-defined function may be as complex as you want it to be,
!   subject to limits on recursion depth, number of function invocations,
!   or cpu time that may be configured in the MUSH.
    If the evaluation order doesn't quite seem right, adding escapes
    or breaking up the expression will probably help.
      
  & UCSTR()
    ucstr(<string>)
  
*** 1_7_6.57/game/txt/hlp/penncmd.hlp Mon, 09 Dec 2002 10:15:18 -0600 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.1.10.1.1.1.1 600)
--- 1_7_6.69(w)/game/txt/hlp/penncmd.hlp Tue, 17 Dec 2002 15:44:52 -0600 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.1.10.1.1.1.1.1.1 600)
***************
*** 808,815 ****
  
  See also: SAFE, GOING, DESTROY_OK  
  & @dig
!   @dig <room name> [= <exit name>;<exit alias>*,<exit name>;<exit alias>*]
!   @dig/teleport
    
    This command is used to create a new room, possibly with exits linking
    it to the room you are standing in. This command normally costs 10 pennies,
--- 808,814 ----
  
  See also: SAFE, GOING, DESTROY_OK  
  & @dig
!   @dig[/teleport] <room name>[=<exit name>;<alias>*,<exit name>;<alias>*]
    
    This command is used to create a new room, possibly with exits linking
    it to the room you are standing in. This command normally costs 10 pennies,
***************
*** 973,980 ****
    (which is a good thing for security).
  & @emit
  & \  
!   @emit[/room][/silent] <message> 
!   @emit[/noeval] <message> 
    \<message>
  
    This sends <message> to every person in the current room. However, no
--- 972,978 ----
    (which is a good thing for security).
  & @emit
  & \  
!   @emit[/room][/silent][/noeval] [<message>]
    \<message>
  
    This sends <message> to every person in the current room. However, no
*** 1_7_6.57/game/restart Fri, 17 May 2002 14:49:25 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2 700)
--- 1_7_6.69(w)/game/restart Tue, 17 Dec 2002 00:15:34 -0600 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.1 700)
***************
*** 55,61 ****
  
  # Prevent double-starting things. You may need to provide a pathname for
  #  some of the commands. System V flavors need "ps -f" instead of "ps uwx".
! mush=`ps uwx | grep $CONF_FILE | grep -v grep | wc -l`
  
  
  if [ $mush -gt 0 ]; then
--- 55,61 ----
  
  # Prevent double-starting things. You may need to provide a pathname for
  #  some of the commands. System V flavors need "ps -f" instead of "ps uwx".
! mush=`ps uwx | grep " $CONF_FILE" | grep -v grep | wc -l`
  
  
  if [ $mush -gt 0 ]; then
*** 1_7_6.57/game/mushcnf.dst Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1 600)
--- 1_7_6.69(w)/game/mushcnf.dst Tue, 17 Dec 2002 15:49:19 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1 600)
***************
*** 161,171 ****
  # the maximum number of times we're allowed to recursively call the parser
  # for a single expression. This limits how much the stack size can increase,
  # which could be useful if your host limits your stack (it will prevent
! # a crash).
  # But remember that you need to recurse for every [ or { or function call
  # in your code, and those add up quickly. So this must often be set quite
  # high (e.g. 18000), alas. Setting it to '0' means unlimited.
! call_limit 0
  
  # The maximum number of milliseconds of CPU time that a single queue entry
  # is allowed to use before aborting. Setting this to a low number will
--- 161,172 ----
  # the maximum number of times we're allowed to recursively call the parser
  # for a single expression. This limits how much the stack size can increase,
  # which could be useful if your host limits your stack (it will prevent
! # a crash). The higher your allowed stack size limit, the larger the
! # mush process can grow, and the higher this can be set.
  # But remember that you need to recurse for every [ or { or function call
  # in your code, and those add up quickly. So this must often be set quite
  # high (e.g. 18000), alas. Setting it to '0' means unlimited.
! call_limit 10000
  
  # The maximum number of milliseconds of CPU time that a single queue entry
  # is allowed to use before aborting. Setting this to a low number will
*** 1_7_6.57/src/wiz.c Fri, 06 Dec 2002 21:20:38 -0600 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1 660)
--- 1_7_6.69(w)/src/wiz.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1.1.2 660)
***************
*** 1304,1310 ****
    object_flag_type restrict_flags = 0;
    dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER;
    int is_wiz;
!   dbref low = 0, high = db_top;
  
    is_wiz = Search_All(player) || See_All(player);
  
--- 1304,1310 ----
    object_flag_type restrict_flags = 0;
    dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER;
    int is_wiz;
!   dbref low = 0, high = db_top - 1;
  
    is_wiz = Search_All(player) || See_All(player);
  
***************
*** 1314,1333 ****
      if (start[0] == '#')
        offset = 1;
      low = parse_integer(start + offset);
!     if (!GoodObject(low)) {
!       notify(player, T("Invalid range argument."));
!       return -1;
!     }
    }
    if (stop && *stop) {
      Size_t offset = 0;
      if (stop[0] == '#')
        offset = 1;
      high = parse_integer(stop + offset);
!     if (!GoodObject(high)) {
!       notify(player, T("Invalid range argument."));
!       return -1;
!     }
    }
  
    /* set limits on who we search */
--- 1314,1329 ----
      if (start[0] == '#')
        offset = 1;
      low = parse_integer(start + offset);
!     if (!GoodObject(low))
!       low = 0;
    }
    if (stop && *stop) {
      Size_t offset = 0;
      if (stop[0] == '#')
        offset = 1;
      high = parse_integer(stop + offset);
!     if (!GoodObject(high))
!       high = db_top - 1;
    }
  
    /* set limits on who we search */
***************
*** 1454,1460 ****
    switch (sclass) {
    case S_OWNER:		/* @search someone */
    case S_TYPE:			/* @search type=whatever */
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)) {
  	if (nresults >= result_size) {
--- 1450,1456 ----
    switch (sclass) {
    case S_OWNER:		/* @search someone */
    case S_TYPE:			/* @search type=whatever */
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)) {
  	if (nresults >= result_size) {
***************
*** 1471,1477 ****
      }
      break;
    case S_ZONE:			/* @search ZONE=#1234 */
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && Zone(n) == restrict_obj) {
  	if (nresults >= result_size) {
--- 1467,1473 ----
      }
      break;
    case S_ZONE:			/* @search ZONE=#1234 */
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && Zone(n) == restrict_obj) {
  	if (nresults >= result_size) {
***************
*** 1489,1495 ****
      }
      break;
    case S_PARENT:		/* @search parent=#1234 */
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && Parent(n) == restrict_obj) {
  	if (nresults >= result_size) {
--- 1485,1491 ----
      }
      break;
    case S_PARENT:		/* @search parent=#1234 */
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && Parent(n) == restrict_obj) {
  	if (nresults >= result_size) {
***************
*** 1507,1513 ****
      }
      break;
    case S_NAME:			/* @search (?:name|exits|objects|rooms|players|things)=name */
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)
  	  && string_match(Name(n), restriction)) {
--- 1503,1509 ----
      }
      break;
    case S_NAME:			/* @search (?:name|exits|objects|rooms|players|things)=name */
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)
  	  && string_match(Name(n), restriction)) {
***************
*** 1535,1541 ****
        if (!restriction || !*restriction)
  	break;
  
!       for (n = low; n < high; n++) {
  	if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	      && (restrict_type == NOTYPE || Typeof(n) == restrict_type)))
  	  continue;
--- 1531,1537 ----
        if (!restriction || !*restriction)
  	break;
  
!       for (n = low; n <= high; n++) {
  	if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	      && (restrict_type == NOTYPE || Typeof(n) == restrict_type)))
  	  continue;
***************
*** 1566,1572 ****
      }
      break;
    case S_POWER:		/* @search power=see_all */
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (Powers(n) & restrict_flags) == restrict_flags) {
  	if (nresults >= result_size) {
--- 1562,1568 ----
      }
      break;
    case S_POWER:		/* @search power=see_all */
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (Powers(n) & restrict_flags) == restrict_flags) {
  	if (nresults >= result_size) {
***************
*** 1584,1590 ****
      }
      break;
    case S_FLAG:
!     for (n = low; n < high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)
  	  && flaglist_check(player, n, restriction, 1)) {
--- 1580,1586 ----
      }
      break;
    case S_FLAG:
!     for (n = low; n <= high; n++) {
        if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
  	  && (restrict_type == NOTYPE || Typeof(n) == restrict_type)
  	  && flaglist_check(player, n, restriction, 1)) {
*** 1_7_6.57/src/timer.c Thu, 05 Sep 2002 09:29:20 -0500 dunemush (pennmush/b/29_timer.c 1.29.1.7 660)
--- 1_7_6.69(w)/src/timer.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/29_timer.c 1.29.1.7.1.1 660)
***************
*** 216,222 ****
    }
  #elif defined(WIN32)		/* Windoze way */
    if (options.queue_entry_cpu_time > 0)
!     timer_id = SetTimer(NULL, NULL, (unsigned) options.queue_entry_cpu_time,
  			(TIMERPROC) win32_timer);
    else
      timer_set = 0;
--- 216,222 ----
    }
  #elif defined(WIN32)		/* Windoze way */
    if (options.queue_entry_cpu_time > 0)
!     timer_id = SetTimer(NULL, 0, (unsigned) options.queue_entry_cpu_time,
  			(TIMERPROC) win32_timer);
    else
      timer_set = 0;
*** 1_7_6.57/src/switchinc.c Mon, 09 Dec 2002 14:23:00 -0600 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.31.3.4.1.1 660)
--- 1_7_6.69(w)/src/switchinc.c Tue, 17 Dec 2002 22:34:46 -0600 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.31.3.4.1.2 660)
***************
*** 132,136 ****
    {"WIZARD", SWITCH_WIZARD},
    {"YES", SWITCH_YES},
    {"ZONE", SWITCH_ZONE},
! {NULL, 0}
  };
--- 132,136 ----
    {"WIZARD", SWITCH_WIZARD},
    {"YES", SWITCH_YES},
    {"ZONE", SWITCH_ZONE},
!   {NULL, 0}
  };
*** 1_7_6.57/src/strutil.c Sun, 01 Dec 2002 13:45:45 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.21 660)
--- 1_7_6.69(w)/src/strutil.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.21.1.2 660)
***************
*** 1091,1097 ****
       * which we need).
       */
      r = ldiv(r.quot, 10);
!     *(--current) = r.rem + '0';
    } while (r.quot);
  
    /* Add the negative sign if needed. */
--- 1091,1097 ----
       * which we need).
       */
      r = ldiv(r.quot, 10);
!     *(--current) = (unsigned char) r.rem + '0';
    } while (r.quot);
  
    /* Add the negative sign if needed. */
*** 1_7_6.57/src/lock.c Wed, 20 Nov 2002 09:43:49 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.13 660)
--- 1_7_6.69(w)/src/lock.c Tue, 17 Dec 2002 22:34:43 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.13.1.1 660)
***************
*** 32,37 ****
--- 32,38 ----
  #include "mushdb.h"
  #include "attrib.h"
  #include "externs.h"
+ #include "dbdefs.h"
  #include "lock.h"
  #include "match.h"
  #include "log.h"
***************
*** 497,506 ****
        if (getlock(thing, real_type) == TRUE_BOOLEXP)
  	notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing),
  		      unparse_dbref(thing));
!       else if (delete_lock(player, thing, real_type))
  	notify_format(player, T("%s(%s) - unlocked."), Name(thing),
  		      unparse_dbref(thing));
!       else
  	notify(player, T("Permission denied."));
      }
    }
--- 498,510 ----
        if (getlock(thing, real_type) == TRUE_BOOLEXP)
  	notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing),
  		      unparse_dbref(thing));
!       else if (delete_lock(player, thing, real_type)) {
  	notify_format(player, T("%s(%s) - unlocked."), Name(thing),
  		      unparse_dbref(thing));
! #ifdef CREATION_TIMES
! 	ModTime(thing) = mudtime;
! #endif
!       } else
  	notify(player, T("Permission denied."));
      }
    }
***************
*** 555,564 ****
    } else {
      if ((real_type = check_lock_type(player, thing, type)) != NULL) {
        /* everything ok, do it */
!       if (add_lock(player, thing, real_type, key, -1))
  	notify_format(player, T("%s(%s) - locked."), Name(thing),
  		      unparse_dbref(thing));
!       else
  	notify(player, T("Permission denied."));
      }
    }
--- 559,571 ----
    } else {
      if ((real_type = check_lock_type(player, thing, type)) != NULL) {
        /* everything ok, do it */
!       if (add_lock(player, thing, real_type, key, -1)) {
  	notify_format(player, T("%s(%s) - locked."), Name(thing),
  		      unparse_dbref(thing));
! #ifdef CREATION_TIMES
! 	ModTime(thing) = mudtime;
! #endif
!       } else
  	notify(player, T("Permission denied."));
      }
    }
***************
*** 638,641 ****
--- 645,651 ----
  
    notify_format(player, "%s/%s - %s.", Name(thing), L_TYPE(l),
  		unset ? "unset" : "set");
+ #ifdef CREATION_TIMES
+   ModTime(thing) = mudtime;
+ #endif
  }
*** 1_7_6.57/src/game.c Sat, 30 Nov 2002 15:49:22 -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.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2 660)
--- 1_7_6.69(w)/src/game.c Tue, 17 Dec 2002 22:34:43 -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.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2.1.1 660)
***************
*** 1368,1384 ****
        bind_and_queue(player, cause, command, curr, placestr);
      } else {
        const char *replace[2];
!       char *ebuf;
  
        /* it's @map, add to the output list */
        if (bp != outbuf)
  	safe_chr(delim, outbuf, &bp);
        replace[0] = curr;
        replace[1] = placestr;
!       ebuf = replace_string2(standard_tokens, replace, command);
        process_expression(outbuf, &bp, (char const **) &ebuf,
  			 player, cause, cause, PE_DEFAULT, PT_DEFAULT, NULL);
!       mush_free(ebuf, "replace_string.buff");
      }
    }
  
--- 1368,1384 ----
        bind_and_queue(player, cause, command, curr, placestr);
      } else {
        const char *replace[2];
!       char *ebuf, *ebufptr;
  
        /* it's @map, add to the output list */
        if (bp != outbuf)
  	safe_chr(delim, outbuf, &bp);
        replace[0] = curr;
        replace[1] = placestr;
!       ebufptr = ebuf = replace_string2(standard_tokens, replace, command);
        process_expression(outbuf, &bp, (char const **) &ebuf,
  			 player, cause, cause, PE_DEFAULT, PT_DEFAULT, NULL);
!       mush_free(ebufptr, "replace_string.buff");
      }
    }
  
*** 1_7_6.57/src/function.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2 660)
--- 1_7_6.69(w)/src/function.c Tue, 17 Dec 2002 22:34:43 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2.1.1 660)
***************
*** 302,309 ****
    {"LOCK", fun_lock, 1, 2, FN_REG},
    {"LPARENT", fun_lparent, 1, 1, FN_REG},
    {"LPLAYERS", fun_lplayers, 1, 1, FN_REG},
!   {"LSEARCH", fun_lsearch, 3, 5, FN_REG},
!   {"LSEARCHR", fun_lsearch, 3, 5, FN_REG},
    {"LSTATS", fun_lstats, 0, 1, FN_REG},
    {"LT", fun_lt, 2, 2, FN_REG},
    {"LTE", fun_lte, 2, 2, FN_REG},
--- 302,309 ----
    {"LOCK", fun_lock, 1, 2, FN_REG},
    {"LPARENT", fun_lparent, 1, 1, FN_REG},
    {"LPLAYERS", fun_lplayers, 1, 1, FN_REG},
!   {"LSEARCH", fun_lsearch, 1, 5, FN_REG},
!   {"LSEARCHR", fun_lsearch, 1, 5, FN_REG},
    {"LSTATS", fun_lstats, 0, 1, FN_REG},
    {"LT", fun_lt, 2, 2, FN_REG},
    {"LTE", fun_lte, 2, 2, FN_REG},
*** 1_7_6.57/src/conf.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15 660)
--- 1_7_6.69(w)/src/conf.c Tue, 17 Dec 2002 22:34:42 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15.1.1.1.1 660)
***************
*** 936,941 ****
--- 936,942 ----
    options.player_name_len = 16;
    options.queue_entry_cpu_time = 1500;
    options.ascii_names = 1;
+   options.call_lim = 10000;
  }
  
  /* Limit how many files we can nest */
*** 1_7_6.57/src/bsd.c Sun, 08 Dec 2002 22:35:42 -0600 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.1.3.1.8.2.1.1.1.1.1.1.1.1.2.1.1 660)
--- 1_7_6.69(w)/src/bsd.c Tue, 17 Dec 2002 22:34:42 -0600 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.1.3.1.8.2.1.1.1.1.1.1.1.1.2.1.1.1.1 660)
***************
*** 373,379 ****
  struct timeval *update_quotas(struct timeval *last, struct timeval *current);
  
  void shovechars(Port_t port);
! DESC *new_connection(int oldsock);
  void clearstrings(DESC *d);
  typedef struct fblock {
    char *buff;
--- 373,379 ----
  struct timeval *update_quotas(struct timeval *last, struct timeval *current);
  
  void shovechars(Port_t port);
! DESC *new_connection(int oldsock, int *result);
  void clearstrings(DESC *d);
  typedef struct fblock {
    char *buff;
***************
*** 2173,2181 ****
        }
  #else
        if (FD_ISSET(sock, &input_set)) {
! 	if (!(newd = new_connection(sock))) {
  #ifdef WIN32
! 	  if (newd == INVALID_SOCKET && WSAGetLastError() != WSAEINTR)
  #else
  	  if (errno && errno != EINTR)
  #endif
--- 2173,2182 ----
        }
  #else
        if (FD_ISSET(sock, &input_set)) {
! 	int result;
! 	if (!(newd = new_connection(sock, &result))) {
  #ifdef WIN32
! 	  if (result == INVALID_SOCKET && WSAGetLastError() != WSAEINTR)
  #else
  	  if (errno && errno != EINTR)
  #endif
***************
*** 2210,2217 ****
  }
  
  DESC *
! new_connection(oldsock)
!     int oldsock;
  {
    int newsock;
    union sockaddr_u addr;
--- 2211,2217 ----
  }
  
  DESC *
! new_connection(int oldsock, int *result)
  {
    int newsock;
    union sockaddr_u addr;
***************
*** 2223,2231 ****
--- 2223,2233 ----
    char *socket_ident;
    char *chp;
  
+   *result = 0;
    addr_len = MAXSOCKADDR;
    newsock = accept(oldsock, (struct sockaddr *) (addr.data), &addr_len);
    if (newsock < 0) {
+     *result = newsock;
      return 0;
    }
    bp = tbuf2;
*** 1_7_6.57/hdrs/version.h Mon, 09 Dec 2002 10:15:18 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.1 660)
--- 1_7_6.69(w)/hdrs/version.h Tue, 17 Dec 2002 22:34:47 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.1 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.6 patchlevel 1 [12/08/2002]"
! #define SHORTVN "PennMUSH 1.7.6p1"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.6 patchlevel 2 [12/17/2002]"
! #define SHORTVN "PennMUSH 1.7.6p2"
*** 1_7_6.57/po/Makefile Wed, 13 Nov 2002 15:39:20 -0600 dunemush (pennmush/e/47_Makefile 1.10 660)
--- 1_7_6.69(w)/po/Makefile Tue, 17 Dec 2002 22:31:44 -0600 dunemush (pennmush/e/47_Makefile 1.11 660)
***************
*** 1,7 ****
  .SUFFIXES: .po .pox .mo
  
  POFILES=ru_RU.po nl_NL.po sv_SE.po hu_HU.po es_ES.po pt_BR.po fr_FR.po \
! da_DK.po de_DE.po no_NO.po
  
  .pox.po: $*.pox pennmush.pot
  	-msgmerge -E -v $*.pox pennmush.pot > $*.po
--- 1,7 ----
  .SUFFIXES: .po .pox .mo
  
  POFILES=ru_RU.po nl_NL.po sv_SE.po hu_HU.po es_ES.po pt_BR.po fr_FR.po \
! da_DK.po de_DE.po no_NO.po pl_PL.po
  
  .pox.po: $*.pox pennmush.pot
  	-msgmerge -E -v $*.pox pennmush.pot > $*.po


More information about the %(listname)s mailing list