[PENNMUSH-ANNOUNCE] 1.7.6-patch13

dunemush at tala.mede.uic.edu dunemush at tala.mede.uic.edu
Sun Aug 17 17:01:55 CDT 2003


This is patch13 to PennMUSH 1.7.6. After applying this patch, you will
have version 1.7.6p13

To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
	patch -p1 < 1.7.6-patch13
	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. On the off chance they appear not to be, simply
rm them and re-run make.

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

In this patch:

Fixes:
   * Calling panic() while in the middle of a panic dump would cause a loop.
     Reported by [EEH]. [SW] 
   * Outdated mention of compose.csh removed from compose.sh.SH.
     Reported by Cheetah at M*U*S*H.
   * timestring() dealt wrongly with large arguments. Reported by
     Jules at M*U*S*H. timefmt() had a similar problem, reported by
     Luke at M*U*S*H.
   * Better checking of db save failures. [SW]


Prereq: 1.7.6p12
*** 1_7_6.168/Patchlevel Mon, 23 Jun 2003 11:08:49 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.12 600)
--- 1_7_6.173(w)/Patchlevel Mon, 11 Aug 2003 16:40:29 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.13 600)
***************
*** 1,2 ****
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p12
--- 1,2 ----
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p13
*** 1_7_6.168/CHANGES.176 Mon, 23 Jun 2003 21:42:51 -0500 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.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1 600)
--- 1_7_6.173(w)/CHANGES.176 Thu, 14 Aug 2003 09:44:31 -0500 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.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.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)
***************
*** 18,23 ****
--- 18,36 ----
  
  ==========================================================================
  
+ Version 1.7.6 patchlevel 13                     August 11, 2003
+ 
+ Fixes:
+    * Calling panic() while in the middle of a panic dump would cause a loop.
+      Reported by [EEH]. [SW] 
+    * Outdated mention of compose.csh removed from compose.sh.SH.
+      Reported by Cheetah at M*U*S*H.
+    * timestring() dealt wrongly with large arguments. Reported by
+      Jules at M*U*S*H. timefmt() had a similar problem, reported by
+      Luke at M*U*S*H.
+    * Better checking of db save failures. [SW]
+ 
+ 
  Version 1.7.6 patchlevel 12                     June 23, 2003
  
  Minor changes:
*** 1_7_6.168/game/txt/hlp/pennvOLD.hlp Tue, 17 Jun 2003 14:15:47 -0500 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1 660)
--- 1_7_6.173(w)/game/txt/hlp/pennvOLD.hlp Thu, 14 Aug 2003 09:44:35 -0500 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1 660)
***************
*** 4417,4423 ****
  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, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
  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
--- 4417,4423 ----
  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, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
  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.168/game/txt/hlp/pennv176.hlp Mon, 23 Jun 2003 21:42:51 -0500 dunemush (pennmush/g/33_pennv176.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1 660)
--- 1_7_6.173(w)/game/txt/hlp/pennv176.hlp Thu, 14 Aug 2003 09:44:35 -0500 dunemush (pennmush/g/33_pennv176.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.2.1.1.1.1 660)
***************
*** 1,4 ****
! & 1.7.6p12
  & changes
  This is a list of changes in this patchlevel which are probably of
  interest to players. More information about new commands and functions
--- 1,4 ----
! & 1.7.6p13
  & changes
  This is a list of changes in this patchlevel which are probably of
  interest to players. More information about new commands and functions
***************
*** 11,16 ****
--- 11,30 ----
  A list of the patchlevels associated with each release can
  be read in 'help patchlevels'.
  
+ Version 1.7.6 patchlevel 13                     August 11, 2003
+ 
+ Fixes:
+    * Calling panic() while in the middle of a panic dump would cause a loop.
+      Reported by [EEH]. [SW] 
+    * Outdated mention of compose.csh removed from compose.sh.SH.
+      Reported by Cheetah at M*U*S*H.
+    * timestring() dealt wrongly with large arguments. Reported by
+      Jules at M*U*S*H. timefmt() had a similar problem, reported by
+      Luke at M*U*S*H.
+    * Better checking of db save failures. [SW]
+ 
+ 
+ & 1.7.6p12
  Version 1.7.6 patchlevel 12                     June 23, 2003
  
  Minor changes:
*** 1_7_6.168/game/txt/compose.sh.SH Thu, 29 Aug 2002 23:08:19 -0500 dunemush (pennmush/33_compose.sh 1.4 700)
--- 1_7_6.173(w)/game/txt/compose.sh.SH Sat, 19 Jul 2003 09:30:43 -0500 dunemush (pennmush/33_compose.sh 1.5 700)
***************
*** 51,57 ****
  # What subdirectories should we be processing?
  dir=$1
  if $test ! -d $dir; then
!   $echo "Usage: compose.csh <directory>"
    exit 0
  fi
  
--- 51,57 ----
  # What subdirectories should we be processing?
  dir=$1
  if $test ! -d $dir; then
!   $echo "Usage: compose.sh <directory>"
    exit 0
  fi
  
*** 1_7_6.168/utils/mkcmds.sh.SH Sun, 22 Dec 2002 01:03:36 -0600 dunemush (pennmush/g/16_mkcmds.sh. 1.3 750)
--- 1_7_6.173(w)/utils/mkcmds.sh.SH Tue, 24 Jun 2003 15:05:28 -0500 dunemush (pennmush/g/16_mkcmds.sh. 1.3.1.1 750)
***************
*** 101,107 ****
    $echo ","			 >> ../src/temp.c
    snum=`expr $snum + 1`
  done
! $echo "{NULL, 0}" >> ../src/temp.c
  $echo "};" >> ../src/temp.c
  
  # NUM_BYTES from command.h * 8.
--- 101,107 ----
    $echo ","			 >> ../src/temp.c
    snum=`expr $snum + 1`
  done
! $echo "  {NULL, 0}" >> ../src/temp.c
  $echo "};" >> ../src/temp.c
  
  # NUM_BYTES from command.h * 8.
*** 1_7_6.168/src/game.c Tue, 13 May 2003 12:32:06 -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.1.1.1.1.1.5.1.3.1.2.1.2.1.1.1.1.1.1.1.1 660)
--- 1_7_6.173(w)/src/game.c Sun, 17 Aug 2003 16:00:59 -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.1.1.1.1.1.5.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1 660)
***************
*** 420,431 ****
  }
  
  void
! panic(message)
!     const char *message;
  {
    const char *panicfile = options.crash_db;
    FILE *f = NULL;
  
    do_rawlog(LT_ERR, "PANIC: %s", message);
    report();
    flag_broadcast(0, 0, "EMERGENCY SHUTDOWN: %s", message);
--- 420,440 ----
  }
  
  void
! panic(const char *message)
  {
    const char *panicfile = options.crash_db;
    FILE *f = NULL;
+   static int already_panicking = 0;
  
+   if (already_panicking) {
+     do_rawlog(LT_ERR,
+ 	      T
+ 	      ("PANIC: Attempted to panic because of '%s' while already panicking. Run in circles, scream and shout!"),
+ 	      message);
+     _exit(133);
+   }
+ 
+   already_panicking = 1;
    do_rawlog(LT_ERR, "PANIC: %s", message);
    report();
    flag_broadcast(0, 0, "EMERGENCY SHUTDOWN: %s", message);
*** 1_7_6.168/src/funtime.c Wed, 19 Mar 2003 13:42:56 -0600 dunemush (pennmush/c/12_funtime.c 1.11.1.14.1.1 660)
--- 1_7_6.173(w)/src/funtime.c Sun, 17 Aug 2003 16:00:58 -0500 dunemush (pennmush/c/12_funtime.c 1.11.1.14.1.1.1.1 660)
***************
*** 33,43 ****
      return;			/* No field? Bad user. */
  
    if (nargs == 2) {
!     if (!is_uinteger(args[1])) {
        safe_str(T(e_uint), buff, bp);
        return;
      }
-     tt = parse_uinteger(args[1]);
    } else
      tt = mudtime;
  
--- 33,54 ----
      return;			/* No field? Bad user. */
  
    if (nargs == 2) {
!     /* This is silly, but time_t is signed on several platforms,
!      * so we can't assign an unsigned int to it safely
!      */
!     if (!is_integer(args[1])) {
!       safe_str(T(e_uint), buff, bp);
!       return;
!     }
!     tt = parse_integer(args[1]);
!     if (errno == ERANGE) {
!       safe_str(T(e_range), buff, bp);
!       return;
!     }
!     if (tt < 0) {
        safe_str(T(e_uint), buff, bp);
        return;
      }
    } else
      tt = mudtime;
  
***************
*** 169,176 ****
     * If pad > 0, pad with 0's (i.e. 0d 0h 5m 1s)
     * If pad > 1, force all #'s to be 2 digits
     */
!   int secs, pad;
!   int days, hours, mins;
  
    if (!is_uinteger(args[0])) {
      safe_str(T(e_uints), buff, bp);
--- 180,187 ----
     * If pad > 0, pad with 0's (i.e. 0d 0h 5m 1s)
     * If pad > 1, force all #'s to be 2 digits
     */
!   unsigned int secs, pad;
!   unsigned int days, hours, mins;
  
    if (!is_uinteger(args[0])) {
      safe_str(T(e_uints), buff, bp);
***************
*** 196,210 ****
    secs %= 60;
    if (pad || (days > 0)) {
      if (pad == 2)
!       safe_format(buff, bp, "%02dd %02dh %02dm %02ds", days, hours, mins, secs);
      else
!       safe_format(buff, bp, "%dd %2dh %2dm %2ds", days, hours, mins, secs);
    } else if (hours > 0)
!     safe_format(buff, bp, "%2dh %2dm %2ds", hours, mins, secs);
    else if (mins > 0)
!     safe_format(buff, bp, "%2dm %2ds", mins, secs);
    else
!     safe_format(buff, bp, "%2ds", secs);
  }
  
  #ifdef HAS_GETDATE
--- 207,221 ----
    secs %= 60;
    if (pad || (days > 0)) {
      if (pad == 2)
!       safe_format(buff, bp, "%02ud %02uh %02um %02us", days, hours, mins, secs);
      else
!       safe_format(buff, bp, "%ud %2uh %2um %2us", days, hours, mins, secs);
    } else if (hours > 0)
!     safe_format(buff, bp, "%2uh %2um %2us", hours, mins, secs);
    else if (mins > 0)
!     safe_format(buff, bp, "%2um %2us", mins, secs);
    else
!     safe_format(buff, bp, "%2us", secs);
  }
  
  #ifdef HAS_GETDATE
*** 1_7_6.168/src/db.c Fri, 03 Jan 2003 01:01:06 -0600 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.6.1.1 660)
--- 1_7_6.173(w)/src/db.c Sun, 17 Aug 2003 16:00:58 -0500 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.6.1.1.1.1 660)
***************
*** 383,417 ****
  static void
  db_write_label(FILE * f, char const *l)
  {
!   fputs(l, f);
!   putc(' ', f);
! }
! 
! static void
! db_write_string(FILE * f, char const *s)
! {
!   putc('"', f);
!   while (*s) {
!     if (*s == '"' || *s == '\\')
!       putc('\\', f);
!     putc(*s, f);
!     s++;			/* done separately because putc() is a macro */
!   }
!   putc('"', f);
  }
  
  static void
  db_write_labeled_string(FILE * f, char const *label, char const *value)
  {
    db_write_label(f, label);
!   db_write_string(f, value);
!   putc('\n', f);
  }
  
  static void
  db_write_labeled_number(FILE * f, char const *label, int value)
  {
!   fprintf(f, "%s %d\n", label, value);
  }
  
  void
--- 383,403 ----
  static void
  db_write_label(FILE * f, char const *l)
  {
!   OUTPUT(fputs(l, f));
!   OUTPUT(putc(' ', f));
  }
  
  static void
  db_write_labeled_string(FILE * f, char const *label, char const *value)
  {
    db_write_label(f, label);
!   putstring(f, value);
  }
  
  static void
  db_write_labeled_number(FILE * f, char const *label, int value)
  {
!   OUTPUT(fprintf(f, "%s %d\n", label, value));
  }
  
  void
*** 1_7_6.168/hdrs/version.h Mon, 23 Jun 2003 11:08:49 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.11 660)
--- 1_7_6.173(w)/hdrs/version.h Sun, 17 Aug 2003 16:01:01 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.12 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.6 patchlevel 12 [06/23/2003]"
! #define SHORTVN "PennMUSH 1.7.6p12"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.6 patchlevel 13 [08/11/2003]"
! #define SHORTVN "PennMUSH 1.7.6p13"
*** 1_7_6.168/po/Makefile Tue, 17 Dec 2002 22:33:42 -0600 dunemush (pennmush/e/47_Makefile 1.11 660)
--- 1_7_6.173(w)/po/Makefile Sun, 17 Aug 2003 15:57:20 -0500 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 pl_PL.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 ro_RO.po
  
  .pox.po: $*.pox pennmush.pot
  	-msgmerge -E -v $*.pox pennmush.pot > $*.po


More information about the Pennmush-announce mailing list