PennMUSH Community
Show
Ignore:
Timestamp:
04/26/07 16:27:25 (2 years ago)
Author:
shawnw
Message:

autoconf: sync with devel branch

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.3/branches/autoconf/CHANGES.182

    r764 r789  
    1717Version 1.8.2 patchlevel 4                      ???, 2007 
    1818 
     19Minor changes: 
     20  * speak() uses accented names. Sketch. 
     21  * config() no longer lists options that can't be set 
     22    with @config/set. Suggested by Trispis. [SW] 
     23 
    1924Fixes: 
    2025  * You can no longer save objects slated to be destroyed 
     
    2833    to the help file. Reported by Talvo. [SW] 
    2934 *  Memory leak in grep(). [SW] 
     35 *  Quotes can be around the player name on the login screen 
     36    always, instead of just when player_name_spaces was 
     37    on. Suggested by Dan Widdis. [SW] 
     38 *  '{think foo} bar' exhibited odd behavior. [GM] 
     39 *  'make test' wouldn't work right unless '.' was in you path. 
     40     Fix by Nathan Baum. 
     41 *  stdin and stdout weren't getting closed, potentially causing 
     42    problems when trying to log out of a shell after starting 
     43    a mush. Reported by K Moon. [SW] 
    3044 
    3145Version 1.8.2 patchlevel 3                      March 11, 2007 
  • 1.8.3/branches/autoconf/CHANGES.183

    r764 r789  
    2121    now ./configure and its options have changed. See 
    2222    INSTALL and ./configure --help [SW] 
    23   * Support for the postresql SQL server. Javelin. 
     23  * Support for the postgresql SQL server. Javelin. 
    2424  * Support for sqlite3 SQL databases. [SW] 
    2525 
     
    2727  * You can no longer run a mush as root. [SW] 
    2828  * @cemit/noisy. Suggested by Kimiko. [SW] 
     29   
     30Functions: 
     31  * isobjid(). By Balerion. 
     32  * player() returns the dbref of the player connected to a given 
     33    port.  By  Nathan Baum. 
    2934  * root(X,3) uses the C cbrt() function if available. [SW] 
    30    
     35  * New formats for align() that allow flowing text. Javelin. 
     36  * isdbref() understands objids. By Balerion. 
     37 
    3138Fixes: 
    3239  * regmatch() broken with %q-registers. Javelin.  
     
    3643    Thanks to Jake. [SW] 
    3744  * Fixed a crash bug in strmatch(). [GM] 
     45  * wrap() of Pueblo tags didn't work very well. Fixed by 
     46    Sketch. 
    3847 
    3948Version 1.8.3 patchlevel 1                      March 11, 2007 
  • 1.8.3/branches/autoconf/README

    r764 r789  
    1414II.   Getting Help, Reporting Bugs 
    1515III.  Getting a .pennmush.org hostname and mailing lists 
    16 IV.   Comments 
     16IV.   Miscellaneous 
     17V.    Comments 
    1718 
    1819You may also want to take a look at Javelin's Guide for PennMUSH Gods, 
     
    178179============================================================================ 
    179180 
    180 IV. Comments 
    181  
    182 IV.a. Amberyl's Comments 
     181IV. Miscellaneous 
     182 
     183V.a Announcing when a mush is down 
     184 
     185If your mush is no longer running on a given port or server and 
     186you want to and are able to leave a programming running listening 
     187on that port, you can tell people about a new location or other news. 
     188 
     189Run: 
     190 
     191% make portmsg 
     192 
     193Then start the port announcer with: 
     194 
     195% ./src/portmsg message.txt port# 
     196 
     197Any connections to the given port will see the contents of the message 
     198file and then be disconnected after a few seconds. 
     199 
     200V. Comments 
     201 
     202V.a. Amberyl's Comments 
    183203 
    184204These are in the first person.  :) 
     
    213233          "Amberyl" just about everywhere 
    214234 
    215 IV.b. Paul/Javelin's Comments 
     235V.b. Paul/Javelin's Comments 
    216236 
    217237And let me recognize T. Alexander Popiel, Shawn Wagner, Nick Gammon, 
     
    230250 
    231251 
    232 IV.c. Alex/Talek's Comments 
     252V.c. Alex/Talek's Comments 
    233253 
    234254I would like to thank Ralph, Amberyl, Moonchilde, and all the others 
  • 1.8.3/branches/autoconf/game/txt/hlp/penncmd.hlp

    r721 r789  
    147147  also checked for an @aconnect. If one is found, it will be executed 
    148148  when a player connects in that location or zone (or, in the case of 
    149   the master room, anywhere). 
     149  the master room, anywhere). This is only done if the room_connects 
     150  config option is enabled. 
    150151 
    151152  One descriptor variable is passed to @aconnect: 
     
    192193  checked for an @adisconnect. If one is found, it will be executed 
    193194  when a player disconnects in that location or zone (or, in the case of 
    194   the master room, anywhere). 
     195  the master room, anywhere). This is only done if the room_connects 
     196  config option is enabled. 
    195197 
    196198  Several descriptor variables are passed to @adisconnect: 
  • 1.8.3/branches/autoconf/game/txt/hlp/pennfunc.hlp

    r652 r789  
    111111  hidden()      idle()        ipaddr()      lports()      lwho() 
    112112  lwhoid()      mwho()        mwhoid()      nmwho()       nwho() 
    113   ports()       pueblo()      recv()        sent()        ssl() 
    114   terminfo()    width()       xmwho()       xmwhoid()     xwho() 
    115   xwhoid()      zmwho()       zwho() 
     113  player()      ports()       pueblo()      recv()        sent() 
     114  ssl()         terminfo()    width()       xmwho()       xmwhoid() 
     115  xwho()        xwhoid()      zmwho()       zwho() 
    116116& Dbref functions 
    117117  Dbref functions return a dbref or list of dbrefs related to some value 
     
    223223  allof()       ansi()        atrlock()     beep()        checkpass() 
    224224  clone()       create()      die()         dig()         firstof() 
    225   functions()   isdbref()     isint()       isnum()       isword() 
    226   localize()    link()        list()        lnum()        null() 
    227   numversion()  objeval()     open()        pcreate()     r-function 
    228   rand()        s-function    scan()        set()         setq() 
    229   setr()        soundex()     soundslike()  speak()       tel() 
    230   textentries() textfile()    valid()       wipe()        @@() 
     225  functions()   isdbref()     isint()       isnum()       isobjid() 
     226  isword()      localize()    link()        list()        lnum() 
     227  null()        numversion()  objeval()     open()        pcreate() 
     228  r-function    rand()        s-function    scan()        set() 
     229  setq()        setr()        soundex()     soundslike()  speak() 
     230  tel()         textentries() textfile()    valid()       wipe() 
     231  @@() 
    231232 
    232233& @@() 
     
    354355  for easy creation of book pages, newsletters, or the like. 
    355356 
    356   <widths> is a space-separated list of column widths. '10 10 10' for 
    357   the widths argument specifies that there are 3 columns, each 10 
    358   spaces wide. You can further modify this by prefixing the number 
    359   with '<', '-' or '>'. A < before a number causes the field to be 
    360   left-aligned. A '-' causes it to be centered, and '>' makes it 
    361   right-aligned. No prefix defaults to left-aligned. A '.' after the 
    362   number implies the column is to be repeated for as long as there is 
    363   text remaining in a non-repeating column. 
     357  <widths> is a space-separated list of column widths. '10 10 10' for the 
     358  widths argument specifies that there are 3 columns, each 10 spaces wide. 
     359  < before a number causes the field to be left-aligned (the default). A 
     360  '-' causes it to be centered, and '>' makes it right-aligned. 
     361  A '.' after the number implies the column is to be repeated for as long 
     362  as there is text remaining in a non-repeating column. A ` (left tick) 
     363  after the number implies that if the column runs out of text, it should 
     364  merge with the next leftmost column (making that column flow around). 
     365  A ' (right tick) after the number implies that if the column runs out 
     366  of text, it should merge with the next rightmost column. 
    364367 
    365368  <filler> is a single character that, if given, is the character used 
     
    373376  Examples: 
    374377   
    375     > &line me=align(<5 10 20,\([left(xget(%0,sex),1)]\),name(%0),name(%L)) 
    376     > th iter(lwho(),u(line,##)
     378    > &line me=align(<5 10 20,\([left(xget(%0,sex),1)]\),name(%0),name(loc(%0))) 
     379    > th iter(lwho(),u(line,##),%b,%r
    377380      (M) Walker     Tree 
    378381      (F) Jane Doe   Nowhere 
     
    17171720  isdbref(<string>) 
    17181721  
    1719   This function returns 1 if the string is a valid object dbref, and 
    1720   0 if the string is not a valid object dbref
    1721   
    1722 See also: DBREFS 
     1722  This function returns 1 if the string is a valid object dbref (or 
     1723  object id), and 0 if the string is not a valid object dbref/objid
     1724  
     1725See also: DBREFS, isobjid() 
    17231726& ISINT() 
    17241727  isint(<string>) 
     
    17371740 
    17381741See also: isint() 
     1742& ISOBJID() 
     1743  isobjid(<string>) 
     1744 
     1745  This function returns 1 if the string is a valid object id, and 
     1746  0 if the string is not a valid object id. 
     1747   
     1748  See also: DBREFS, isdbref(), objid() 
    17391749& ISWORD() 
    17401750  isword(<string>) 
     
    29442954 
    29452955See also: objmem() 
    2946  
     2956& PLAYER() 
     2957  player(<port>) 
     2958 
     2959  Returns the dbref of the player connected to a given port. 
     2960  You must be see_all or otherwise privleged to use this function on 
     2961  ports that players besides yourself are using.  
     2962 
     2963See also: lports(), ports() 
    29472964& PMATCH() 
    29482965  pmatch(<string>) 
     
    29833000  get information about their own connections. See_all is needed to use 
    29843001  them to get information about other people's ports. 
     3002 
     3003See also: player() 
    29853004& POS() 
    29863005  pos(<string1>, <string2>) 
  • 1.8.3/branches/autoconf/hdrs/log.h

    r463 r789  
    1515extern void start_all_logs(void); 
    1616extern void end_all_logs(void); 
    17 extern void redirect_stderr(void); 
     17extern void redirect_streams(void); 
    1818extern void WIN32_CDECL do_log 
    1919  (int logtype, dbref player, dbref object, const char *fmt, ...) 
  • 1.8.3/branches/autoconf/hdrs/parse.h

    r738 r789  
    5050 
    5151 
    52 /* The following routines all take varoius arguments, and return 
     52/* The following routines all take various arguments, and return 
    5353 * string representations of same.  The string representations 
    5454 * are stored in static buffers, so the next call to each function 
     
    6565 
    6666/* The following routines all take strings as arguments, and return 
    67  * true iff the string is a valid representation of the appropriate type. 
     67 * true if the string is a valid representation of the appropriate type. 
    6868 */ 
    6969int is_dbref(char const *str); 
     
    203203 * 
    204204 * PE_FUNCTION_MANDATORY causes an error to be reported if a function call 
    205  * is attempted for a non-existant function.  Otherwise, the function call 
     205 * is attempted for a non-existent function.  Otherwise, the function call 
    206206 * is not evaluated, but rather treated as normal text. 
    207207 * 
     
    230230 * If the character corresponding to a set flag is encountered, then 
    231231 * process_expression() will exit, with *str pointing at the terminating 
    232  * charater.  '\0' is always a terminating character. 
     232 * character.  '\0' is always a terminating character. 
    233233 * 
    234234 * PT_DEFAULT, below, is provided as syntactic sugar. 
  • 1.8.3/branches/autoconf/src/bsd.c

    r764 r789  
    28002800  p = (unsigned char *) user; 
    28012801 
    2802   if (PLAYER_NAME_SPACES && *msg == '\"') { 
     2802  if (*msg == '\"') { 
    28032803    for (; *msg && ((*msg == '\"') || isspace(*msg)); msg++) ; 
    28042804    while (*msg && (*msg != '\"')) { 
     
    41504150    } 
    41514151  } 
     4152} 
     4153 
     4154/* ARGSUSED */ 
     4155FUNCTION(fun_player) 
     4156{ 
     4157  /* Gets the player associated with a particular descriptor */ 
     4158  DESC *d = lookup_desc(executor, args[0]); 
     4159  if (d) 
     4160    safe_dbref(d->player, buff, bp); 
     4161  else 
     4162    safe_str("#-1", buff, bp); 
    41524163} 
    41534164 
  • 1.8.3/branches/autoconf/src/command.c

    r764 r789  
    995995    } else { 
    996996      c = command; 
    997       while ((*c) && (*c != '/') && (*c != ' ')
     997      while ((*c) && (*c != '/')
    998998    c++; 
    999999      b = *c; 
  • 1.8.3/branches/autoconf/src/conf.c

    r764 r789  
    15861586    return; 
    15871587  } else { 
     1588    int first = 1; 
    15881589    for (cp = conftable; cp->name; cp++) { 
    1589       safe_str(cp->name, buff, bp); 
    1590       safe_chr(' ', buff, bp); 
     1590      if (cp->group) { 
     1591    if (first) 
     1592      first = 0; 
     1593    else 
     1594      safe_chr(' ', buff, bp); 
     1595    safe_str(cp->name, buff, bp); 
     1596      } 
    15911597    } 
    15921598    for (cp = (PENNCONF *) hash_firstentry(&local_options); cp; 
    15931599     cp = (PENNCONF *) hash_nextentry(&local_options)) { 
    1594       safe_str(cp->name, buff, bp); 
    1595       safe_chr(' ', buff, bp); 
     1600      if (cp->group) { 
     1601    if (first) 
     1602      first = 0; 
     1603    else 
     1604      safe_chr(' ', buff, bp); 
     1605    safe_str(cp->name, buff, bp); 
     1606      } 
    15961607    } 
    15971608  } 
  • 1.8.3/branches/autoconf/src/function.c

    r764 r789  
    417417  {"ISINT", fun_isint, 1, 1, FN_REG}, 
    418418  {"ISNUM", fun_isnum, 1, 1, FN_REG}, 
     419  {"ISOBJID", fun_isobjid, 1, 1, FN_REG}, 
    419420  {"ISWORD", fun_isword, 1, 1, FN_REG}, 
    420421  {"ITER", fun_iter, 2, 4, FN_NOPARSE}, 
     
    548549  {"PEMIT", fun_pemit, 2, -2, FN_REG}, 
    549550  {"PLAYERMEM", fun_playermem, 1, 1, FN_REG}, 
     551  {"PLAYER", fun_player, 1, 1, FN_REG}, 
    550552  {"PMATCH", fun_pmatch, 1, 1, FN_REG}, 
    551553  {"POLL", fun_poll, 0, 0, FN_REG}, 
  • 1.8.3/branches/autoconf/src/fundb.c

    r764 r789  
    20842084FUNCTION(fun_isdbref) 
    20852085{ 
    2086   safe_boolean(parse_dbref(args[0]) != NOTHING, buff, bp); 
     2086  safe_boolean(parse_objid(args[0]) != NOTHING, buff, bp); 
     2087
     2088 
     2089/* ARGSUSED */ 
     2090FUNCTION(fun_isobjid) 
     2091
     2092  safe_boolean(is_objid(args[0]), buff, bp); 
    20872093} 
    20882094 
  • 1.8.3/branches/autoconf/src/funstr.c

    r764 r789  
    3434 
    3535#define MAX_COLS 32  /**< Maximum number of columns for align() */ 
    36 static int wraplen(char *str, int maxlen); 
     36static int wraplen(char *str, size_t maxlen); 
    3737static int align_one_line(char *buff, char **bp, int ncols, 
    3838              int cols[MAX_COLS], int calign[MAX_COLS], 
     
    11331133  dbref thing; 
    11341134  ATTR *attrib; 
    1135   char *ap, *lp; 
     1135  const char *ap; 
     1136  char *lp; 
    11361137  char *asave, cbuf[2]; 
    11371138  char *tptr[2]; 
     
    15651566} 
    15661567 
    1567  
    1568 /* Returns the length of str up to the first return character,  
    1569  * or else the last space, or else 0. 
     1568/* Returns the length of str up to the first return character, 
     1569 * or else the last space, or else -1. 
    15701570 */ 
    15711571static int 
    1572 wraplen(char *str, int maxlen) 
    1573 
    1574   const int length = strlen(str); 
    1575   int i = 0; 
    1576  
    1577   if (length <= maxlen) { 
    1578     /* Find the first return char 
    1579      * so %r will not mess with any alignment 
    1580      * functions. 
    1581      */ 
    1582     while (i < length) { 
    1583       if ((str[i] == '\n') || (str[i] == '\r')) 
    1584     return i; 
    1585       i++; 
    1586     } 
    1587     return length; 
    1588   } 
    1589  
    1590   /* Find the first return char 
    1591    * so %r will not mess with any alignment 
    1592    * functions. 
    1593    */ 
    1594   while (i <= maxlen + 1) { 
     1572wraplen(char *str, size_t maxlen) 
     1573
     1574  size_t i, length; 
     1575 
     1576  /* If the remaining text is shorter than our chunk size (maxlen), 
     1577   * try to return it all. Otherwise, scan the maximum allowable size, 
     1578   * but account for a newline character. */   
     1579  length = (strlen(str) <= maxlen) ? strlen(str) : maxlen+1; 
     1580 
     1581  /* If there's a newline in the chunk, wrap there. */ 
     1582  for (i = 0; i < length; i++) 
    15951583    if ((str[i] == '\n') || (str[i] == '\r')) 
    15961584      return i; 
    1597     i++; 
    1598   } 
    1599  
    1600   /* No return char was found. Now  
    1601    * find the last space in str. 
    1602   */ 
     1585 
     1586  /* No newlines, but the text we can grab will fit on one line */ 
     1587  if (length == strlen(str)) 
     1588    return length; 
     1589 
     1590  /* No return char was found, so find the last space in str. */ 
    16031591  while (str[maxlen] != ' ' && maxlen > 0) 
    16041592    maxlen--; 
    16051593 
    1606   return (maxlen ? maxlen : -1); 
     1594  if (maxlen > 0) 
     1595    return (int)maxlen; 
     1596  else 
     1597    return -1; 
    16071598} 
    16081599 
     
    16201611     } \ 
    16211612     v = parse_integer(args[a]); \ 
    1622   } \ 
     1613  } \ 
    16231614 while (0) 
    16241615 
     
    16341625  ansi_string *as; 
    16351626  const char *pend;     /* end of string */ 
    1636   int linewidth, width1st, width; 
     1627  size_t linewidth, width1st, width; 
    16371628  int linenr = 0; 
    16381629  const char *linesep; 
    1639   int ansiwidth, ansilen; 
     1630  size_t ansiwidth; 
     1631  int ansilen; 
    16401632 
    16411633  if (!args[0] || !*args[0]) 
    16421634    return; 
     1635 
     1636  if (ansi_strlen(args[0]) == 0) { 
     1637    safe_str(args[0], buff, bp); 
     1638    return; 
     1639  } 
     1640 
    16431641 
    16441642  initint(1, width, 72); 
    16451643  width1st = width; 
     1644 
    16461645  if (nargs > 2) 
    16471646    initint(2, width1st, width); 
     
    16631662 
    16641663  linewidth = width1st; 
     1664 
    16651665  while (pstr < pend) { 
    16661666    if (linenr++ == 1) 
     
    16691669      safe_str(linesep, buff, bp); 
    16701670 
    1671     ansiwidth = ansi_strnlen(pstr, linewidth); 
     1671    ansiwidth = strlen(pstr); 
     1672    if (ansiwidth > linewidth) 
     1673      ansiwidth = linewidth; 
    16721674    ansilen = wraplen(pstr, ansiwidth); 
    16731675 
     
    16941696#define AL_CENTER 3  /**< Align center */ 
    16951697#define AL_REPEAT 4  /**< Repeat column */ 
     1698#define AL_COALESCE_LEFT 8  /**< Coalesce empty column with column to left */ 
     1699#define AL_COALESCE_RIGHT 16  /**< Coalesce empty column with column to right */ 
    16961700 
    16971701static int 
     
    17171721  cols_done = 0; 
    17181722  for (i = 0; i < ncols; i++) { 
     1723    /* Skip 0-width and negative columns */ 
     1724    if (cols[i] <= 0) { 
     1725      cols_done++; 
     1726      continue; 
     1727    } 
     1728    /* Is the next column AL_COALESCE_LEFT and has it run out of 
     1729     * text? If so, do the coalesce now. 
     1730     */ 
     1731    if ((i < (ncols - 1)) && 
     1732    (!(calign[i + 1] & AL_REPEAT) && 
     1733     (calign[i + 1] & AL_COALESCE_LEFT) && 
     1734     (!ptrs[i + 1] || !*ptrs[i + 1]))) { 
     1735      /* To coalesce left on this line, modify the left column's 
     1736       * width and set the current column width to 0 (which we can 
     1737       * teach it to skip). */ 
     1738      cols[i] += cols[i + 1] + 1; 
     1739      cols[i + 1] = 0; 
     1740    } 
    17191741    if (!ptrs[i] || !*ptrs[i]) { 
    17201742      if (calign[i] & AL_REPEAT) { 
    17211743    ptrs[i] = as[i]->text; 
     1744    /* To coalesce right on this line, 
     1745     * modify the current column's width to 0, modify the right 
     1746     * column's width, and continue on to processing the next 
     1747     * column 
     1748     */ 
     1749      } else if (calign[i] & AL_COALESCE_RIGHT) { 
     1750    if (i < (ncols - 1)) 
     1751      cols[i + 1] += cols[i] + 1; 
     1752    cols[i] = 0; 
     1753    cols_done++; 
     1754    continue; 
    17221755      } else { 
    17231756    lp += cols[i]; 
     
    17931826       ptrs[i]++) ; 
    17941827  } 
     1828 
    17951829  if (cols_done == ncols) 
    17961830    return 0; 
     1831  if ((lp - line) > BUFFER_LEN) 
     1832    lp = (line + BUFFER_LEN - 1); 
    17971833  *lp = '\0'; 
    17981834  if (linenum > 0 && lslen > 0) 
     
    18181854  char *linesep; 
    18191855  int lslen; 
     1856  int totallen = 0; 
    18201857 
    18211858  filler = ' '; 
     
    18511888      ptr++; 
    18521889    } 
     1890    if (*ptr == '`') { 
     1891      calign[ncols] |= AL_COALESCE_LEFT; 
     1892      ptr++; 
     1893    } 
     1894    if (*ptr == '\'') { 
     1895      calign[ncols] |= AL_COALESCE_RIGHT; 
     1896      ptr++; 
     1897    } 
    18531898    cols[ncols++] = i; 
    18541899    if (!*ptr) 
    18551900      break; 
    18561901  } 
     1902 
    18571903 
    18581904  for (i = 0; i < ncols; i++) { 
     
    18611907      return; 
    18621908    } 
     1909    if (cols[i] > BUFFER_LEN) { 
     1910      safe_str(T("#-1 CANNOT HAVE COLUMNS THAT LARGE"), buff, bp); 
     1911      return; 
     1912    } 
     1913    totallen += cols[i]; 
     1914  } 
     1915  if (totallen > BUFFER_LEN) { 
     1916      safe_str(T("#-1 CANNOT HAVE COLUMNS THAT LARGE"), buff, bp); 
     1917      return; 
    18631918  } 
    18641919 
     
    19782033    close = args[6]; 
    19792034 
     2035 
    19802036  switch (*string) { 
    19812037  case ':': 
    1982     safe_str(Name(speaker), buff, bp); 
     2038    safe_str(accented_name(speaker), buff, bp); 
    19832039    string++; 
    19842040    if (*string == ' ') { 
     
    19912047  case ';': 
    19922048    string++; 
    1993     safe_str(Name(speaker), buff, bp); 
     2049    safe_str(accented_name(speaker), buff, bp); 
    19942050    if (*string == ' ') { 
    19952051      /* pose it instead */ 
     
    20132069    /* nice and easy */ 
    20142070    if (say) 
    2015       safe_format(buff, bp, "%s %s \"%s\"", Name(speaker), say_string, string); 
     2071      safe_format(buff, bp, "%s %s \"%s\"", accented_name(speaker), 
     2072                  say_string, string); 
    20162073    else 
    20172074      safe_str(string, buff, bp); 
     
    20292086    } 
    20302087    if (strlen(rbuff) > 0) { 
    2031       safe_format(buff, bp, "%s %s %s", Name(speaker), say_string, rbuff); 
     2088      safe_format(buff, bp, "%s %s %s", accented_name(speaker), 
     2089                  say_string, rbuff); 
    20322090      return; 
    20332091    } else if (null == 1) { 
     
    20472105 
    20482106    if (say) { 
    2049       safe_str(Name(speaker), buff, bp); 
     2107      safe_str(accented_name(speaker), buff, bp); 
    20502108      safe_chr(' ', buff, bp); 
    20512109      safe_str(say_string, buff, bp); 
  • 1.8.3/branches/autoconf/src/game.c

    r764 r789  
    742742  config_file_startup(conf, 0); 
    743743  start_all_logs(); 
    744   redirect_stderr(); 
     744  redirect_streams(); 
    745745 
    746746  /* Initialize the attribute chunk storage */ 
  • 1.8.3/branches/autoconf/src/log.c

    r674 r789  
    121121} 
    122122 
    123 /** Redirect stderr to a error log file.  
     123/** Redirect stderr to a error log file and close stdout and stdin.  
    124124 * Should be called after start_all_logs(). 
    125125 * \param log name of logfile to redirect stderr to. 
    126126 */ 
    127127void 
    128 redirect_stderr(void) 
     128redirect_streams(void) 
    129129{ 
    130130  FILE *errlog_fp; 
     
    143143    fclose(errlog_fp); 
    144144  } 
     145#ifndef DEBUG_BYTECODE 
     146 fclose(stdout); 
     147#endif 
     148 fclose(stdin); 
    145149} 
    146150 
  • 1.8.3/branches/autoconf/src/parse.c

    r764 r789  
    249249 * In regex: ^#-?\d+(:\d+)?$ 
    250250 * \param str string to check. 
    251  * \retval 1 string is a dbref. 
    252  * \retval 0 string is not a dbref
     251 * \retval 1 string is an objid 
     252 * \retval 0 string is not an objid
    253253 */ 
    254254int 
  • 1.8.3/branches/autoconf/test/PennMUSH.pm

    r439 r789  
    6464  } elsif (defined($child)) { 
    6565    chdir("testgame"); 
    66     exec("netmush", "test.cnf", "log/netmush.log"); 
     66    exec("./netmush", "test.cnf", "log/netmush.log"); 
    6767  } else { 
    6868    die "Could not spawn game process!\n";