PennMUSH Community

Changeset 417

Show
Ignore:
Timestamp:
08/12/06 17:05:31 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p9 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.7.7/CHANGES

    r415 r417  
    1818 
    1919========================================================================== 
     20 
     21Version 1.7.7 patchlevel 9                      February 20, 2003 
     22 
     23Functions: 
     24  * New function scan() works like @scan. Suggested by Viila@M*U*S*H. 
     25Flags: 
     26  * New flag, MISTRUST, prevents an object from controlling anything 
     27    but itself. 
     28Configuration: 
     29  * mush.cnf directives ansi_justify, globals, and global_connects have 
     30    been removed (they are now always on). 
     31  * New unconnected_idle_timeout directive in mush.cnf controls 
     32    timeouts for connections idle at the connect screen. 
     33  * New max_guests directive in mush.cnf can limit the number of  
     34    guests allowed to connect at once. Suggested by Sholevi@M*U*SH. 
     35Minor Changes: 
     36  * New lflags search class takes a list of flag names. 
     37  * Improved connection failure messages. 
     38  * Somewhat more informative message when you @chan/gag,hide,mute 
     39    all channels at once. Suggested by Tanaku and Kevin@M*U*S*H. 
     40  * Began commenting files using doxygen. 
     41  * Internal code cleanup. Mostly converting some magic numbers to  
     42    #define'd symbols, and some #define'd symbols to enums for better 
     43    debugging and improved readability. Also some conversion of old 
     44    K&R style functions. [SW] 
     45  * sort() and the set functions understand all the same comparison 
     46    types as comp(). [SW] 
     47  * Case-sensitive comparison currently isn't always possible, depending 
     48    on the locale the mush is running on. Help files reflect this. [SW] 
     49  * @uptime shows the time of the last successful database save, and 
     50    the time of future events like saves, not just the time until them. 
     51    Suggested by Cheetah@M*U*S*H. [SW] 
     52  * Improvements to reporting of failed saves. [SW] 
     53  * Code cleanup. [SW] 
     54  * tel() now takes a third argument that makes it function like 
     55    @tel/silent. Suggested by Cheetah@M*U*S*H. [SW] 
     56  * @idescformat operates like @descformat for internal descriptions. 
     57    Suggested by Tanya@M*U*S*H. 
     58Fixes: 
     59  * local_startup() was getting run earlier than in the past due to 
     60    changes in the startup sequence. This has been rectified, so 
     61    local_startup() again runs after all other initialization (and 
     62    just before all object startups are triggered). Report by 
     63    BladedThoth and grapenut@M*U*S*H. 
     64  * Improved testing for openssl libraries in Configure. The old 
     65    approach used to cause problems on systems with runtime-only 
     66    openssl installations without development libraries. 
     67  * help opaque mentions that opaque blocks look/outside. Suggested 
     68    by Cheetah@M*U*S*H. 
     69  * itext() and inum() now generate an error on a null argument, 
     70    regardless of tiny_math and null_eq_zero settings. Reported by 
     71    Intrevis@M*U*S*H. 
     72  * Another fix to the new matcher. Bug report by Kyieren@M*U*S*H. 
     73  * @flag/alias was broken. Fixed. Reported by Kevin@M*U*S*H.  
     74 
    2075 
    2176Version 1.7.7 patchlevel 8                      January 27, 2003 
  • 1.7.7/CHANGES.OLD

    r335 r417  
    17201720         works. Report by Vedui. 
    17211721 
    1722  
    1723 Version 1.6.10 patchlevel 6                   May 11, 1997 
    1724  
    1725 Fixes: 
    1726         * inc() and dec() didn't work right with NULL_EQ_ZERO. 
    1727           Fixed. Report by Dennis DeMarco 
    1728  
    17291722Version 1.7.1 patchlevel 3                    January 12, 1998 
    17301723 
     
    18151808          Reported by Leo@ATS TrekMUSH 
    18161809        * @chan/gag now works correctly. Report by Vedui. 
    1817  
    1818  
    1819 Version 1.7.0 patchlevel 11                    November 18, 1997 
    1820  
    1821 Fixes: 
    18221810        * Help for remove() updated. Reported by Vedui@Robotech. 
    18231811        * hasattr() didn't check if the invoker had permission to read 
  • 1.7.7/Configure

    r399 r417  
    303303d_newstyle='' 
    304304d_open3='' 
    305 d_openssl='' 
    306305d_portable='' 
    307306d_lrand48='' 
     
    409408xlibpth='' 
    410409libs='' 
     410d_openssl='' 
     411libcrypto='' 
     412libssl='' 
    411413lns='' 
    412414mailer='' 
     
    567569libswanted='' 
    568570defvoidused=15 
    569 libswanted='nsl socket m c crypt bind resolv ld dl tcl intl ssl crypto
     571libswanted='nsl socket m c crypt bind resolv ld dl tcl intl
    570572 
    571573: Find the basic shell for Bourne shell scripts 
     
    46724674$rm -f open3* 
    46734675 
    4674 : check for openssl 
    4675 echo " " 
    4676 $cat >test_openssl.c <<EOCP 
     4676: see if we should include -lssl and -lcrypto 
     4677echo " " 
     4678if $test -r /usr/lib/libssl$_a || \ 
     4679   $test -r /lib/libssl$_a || \ 
     4680   $test -r /usr/local/lib/libssl$_a ; then 
     4681    echo "-lssl found." >&4 
     4682    libssl='-lssl' 
     4683else 
     4684    xxx=`./loc libssl$_a x $libpth` 
     4685    case "$xxx" in 
     4686    x) 
     4687        echo "No ssl library found." >&4 
     4688        libssl='' 
     4689        ;; 
     4690    *) 
     4691        echo "SSL library found in $xxx." >&4 
     4692        libssl="$xxx" 
     4693        ;; 
     4694    esac 
     4695fi 
     4696 
     4697if $test -r /usr/lib/libcrypto$_a || \ 
     4698   $test -r /lib/libcrypto$_a || \ 
     4699   $test -r /usr/local/lib/libcrypto$_a ; then 
     4700    echo "-lcrypto found." >&4 
     4701    libcrypto='-lcrypto' 
     4702else 
     4703    xxx=`./loc libcrypto$_a x $libpth` 
     4704    case "$xxx" in 
     4705    x) 
     4706        echo "No crypto library found." >&4 
     4707        libcrypto='' 
     4708        ;; 
     4709    *) 
     4710        echo "SSL crypto library found in $xxx." >&4 
     4711        libcrypto="$xxx" 
     4712        ;; 
     4713    esac 
     4714fi 
     4715 
     4716case "x$libssl$libcrypto" in 
     4717    x) 
     4718        ;; 
     4719    *) 
     4720$cat > test_openssl.c <<EOM 
     4721#include <stdio.h> 
    46774722#include <stdlib.h> 
    4678 #include <stdio.h> 
    46794723#include <openssl/opensslv.h> 
    46804724int main(int argc, char **argv) { 
     
    46824726   exit(OPENSSL_VERSION_NUMBER < 0x00906000L); 
    46834727} 
    4684 EOCP 
    4685  
    4686 d_openssl='undef' 
    4687 if $cc $ccflags $ldflags -o test_openssl test_openssl.c $libs >/dev/null 2>&1 ; then 
     4728EOM 
     4729 
     4730if $cc $ccflags $ldflags -o test_openssl test_openssl.c $libs $libssl $libcrypto >/dev/null 2>&1 ; 
     4731then 
    46884732    echo 'You have openssl...' >&4 
    46894733    version=`./test_openssl` 
    46904734    if $test $? -eq 0; then 
    46914735      d_openssl='define' 
     4736      libs="$libs $libssl $libcrypto" 
    46924737      echo '...and at least version 0.9.6. Great.' >&4 
    46934738    else 
     
    46994744$rm -f test_openssl* core 
    47004745 
     4746    ;;   
     4747esac 
    47014748: see if rename exists 
    47024749set rename d_rename 
     
    68626909less='$less' 
    68636910libc='$libc' 
     6911libcrypto='$libcrypto' 
    68646912libpth='$libpth' 
    68656913libs='$libs' 
     6914libssl='$libssl' 
    68666915line='$line' 
    68676916lint='$lint' 
  • 1.7.7/Patchlevel

    r415 r417  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p8 
     2This is PennMUSH 1.7.7p9 
  • 1.7.7/config_h.SH

    r399 r417  
    600600#$d_newstyle CAN_NEWSTYLE /**/ 
    601601 
    602 /* HAS_OPENSSL: 
    603  *  Defined if openssl 0.9.6+ is available. 
    604  */ 
    605 #$d_openssl HAS_OPENSSL /**/ 
    606  
    607602/* HAS_RANDOM: 
    608603 *  Have we got random(), our first choice for number generation? 
     
    819814#$i_stdarg I_STDARG     /**/ 
    820815 
     816/* HAS_OPENSSL: 
     817 *     Defined if openssl 0.9.6+ is available. 
     818 */ 
     819#$d_openssl HAS_OPENSSL /**/ 
     820 
    821821#endif 
    822822!GROK!THIS! 
  • 1.7.7/game/alias.cnf

    r349 r417  
    5353# And so can attributes! 
    5454attribute_alias describe desc 
     55attribute_alias idescribe idesc 
    5556attribute_alias success succ 
    5657attribute_alias osuccess osucc 
  • 1.7.7/game/mushcnf.dst

    r411 r417  
    118118idle_timeout 0 
    119119 
     120# Should there be a limit on how long connections at the connect screen 
     121# (without an associated player) can be idle? 
     122# If you want one, set unconnected_idle_timeout to the # number of MINUTES  
     123# a connection may idle before getting disconnected. 
     124# If you don't want a timeout, set it to 0. 
     125unconnected_idle_timeout 5 
     126 
    120127# Should there be a limit on the number of logins the MUSH 
    121128# can accept? If your operating system has a limited number of 
     
    124131# set this to 0. 
    125132max_logins 120 
     133 
     134# Should there be a limit on the number of concurrent guest logins the MUSH 
     135# will allow? This option can take 3 values: 
     136# 0 = no limit, any number of guests. Logins beyond the number of established 
     137#     guest characters will result in multiple players being logged into the 
     138#     same guest character. 
     139# -1 = limited to the number of guests in the database. To allow more guests 
     140#      to log in, create more guest characters. 
     141# Any other number = the number of guest connections allowed at once. 
     142max_guests 0 
    126143 
    127144# How much MUSH money do players get when they're created? 
     
    405422reverse_shs yes 
    406423 
    407 ### 
    408 ### Master Room and @aconnect/disconnect 
    409 ### 
    410  
    411 # enable global exits and commands? 
    412 globals yes 
    413  
    414 # check zones and the master room for aconnect/adisconnect? 
    415 global_connects yes 
    416  
    417424# trigger @aconnect/@adisconnect in a connecting player's location 
    418425# if the location is a room or thing? 
     
    534541# show room/object/player names in bold for ansi players? 
    535542ansi_names yes 
    536  
    537 # should ljust(), rjust(), center(), and table() ignore ansi when 
    538 # figuring out how to justify a string? 
    539 ansi_justify yes 
    540543 
    541544# show exit lists with commas (a, b, and c)? 
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r411 r417  
    3434  @away          @charges       @cost          @conformat     @descformat 
    3535  @ealias        @exitformat    @filter        @forwardlist   @haven          
    36   @idle          @infilter      @inprefix      @lalias        @listen         
    37   @nameformat    @oxenter       @oxleave       @oxmove        @oxtport        
    38   @prefix        @runout        @sex           @startup        
     36  @idescformat   @idle          @infilter      @inprefix      @lalias         
     37  @listen        @nameformat    @oxenter       @oxleave       @oxmove         
     38  @oxtport       @prefix        @runout        @sex           @startup        
    3939 
    4040See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES 
     
    601601  "look" for each room's @desc. 
    602602 
    603   See also: @exitformat, @nameformat, @conformat 
     603  See also: @exitformat, @nameformat, @conformat, @idescformat 
     604& @idescformat 
     605  @idescformat <object> [=<text>] 
     606 
     607  Replaces the usual description of the object when it is looked at from 
     608  within by player-specified text. The evaluated IDESCRIBE attribute 
     609  is passed as %0; the unevaluated IDESCRIBE can be acquired through 
     610  v(IDESCRIBE). 
     611 
     612  This is useful for things like object parents that enforce a consistent 
     613  "look" for each object's @idesc. 
     614 
     615  See also: @exitformat, @nameformat, @conformat, @descformat 
    604616& @nameaccent 
    605617  @nameaccent <object> [=<accent template>] 
     
    14911503  reset. 
    14921504   
    1493 See also: enter, @enter, ENTER_OK, @describe, look 
     1505See also: enter, @enter, ENTER_OK, @describe, look, @idescformat 
    14941506& @hook 
    14951507  @hook/<switch> <command>[=<object>, <attribute>] 
     
    25972609  will be listed. If a <class> argument is supplied only objects of a 
    25982610  certain class will  be listed. Possible <class>es include TYPE, NAME, 
    2599   ZONE, PARENT, EXITS, OBJECTS (Or THINGS), ROOMS, PLAYERS, FLAGS, POWERS, 
    2600   EVAL, EPLAYER, EROOM, EEXIT, and EOBJECT (Or ETHING). 
     2611  ZONE, PARENT, EXITS, OBJECTS (Or THINGS), ROOMS, PLAYERS, FLAGS, LFLAGS, 
     2612  POWERS, EVAL, EPLAYER, EROOM, EEXIT, and EOBJECT (Or ETHING). 
    26012613 
    26022614  If <class>=TYPE, possible <restriction>s include OBJECT (Or THING), ROOM, 
     
    26122624& @search2 
    26132625  If <class>=EXITS, OBJECTS, ROOMS, or PLAYERS, only objects of that type 
    2614    
    2615   If <class>=FLAGS, only  objects with the list of flags specified by  
    2616   <restriction> will be listed. Flag names should be specified by single 
    2617   letters. Flag names are case-sensitive. 
     2626 
     2627  If <class>=FLAGS or LFLAGS, only objects with the list of flags 
     2628  specified by <restriction> will be listed. For FLAGS, flags to match 
     2629  should be given as a string of single flag letters, with appropriate 
     2630  case. For LFLAGS, flags to match should be given as a space-separated 
     2631  list of flag names. 
     2632 
     2633  If <class>=POWERS, only objects with the given power are listed. Only 
     2634  one power may be specified. 
     2635   
     2636  If <class>=EVAL, only objects for which <restriction> evaluates to a 
     2637  true boolean value will be listed. The token '##' in <restriction>, which 
     2638  is a function, is replaced by each dbref sequentially. Classes EPLAYER, 
     2639  EROOM, EEXIT, and EOBJECT work like EVAL but are restricted to a single type. 
     2640   
     2641  See "help @search3" for more. 
     2642& @search3 
     2643  For the class TYPE=PLAYER, and for  PLAYER=<player-name>, anyone may 
     2644  obtain information on any player.  In all other cases, only wizards may 
     2645  obtain information about other players. This is computationally 
     2646  expensive, costing 100 pennies. It is generally faster than @find. 
     2647   
     2648  Examples:   
     2649    @search flags=Wc      <-- search for connected wizards. 
     2650    @search type=room     <-- list all rooms owned by me. 
     2651    @search zone=#50      <-- list all objects belong to zone #50. 
     2652    @search Joe eval=1,100,200   <-- list objects from #100-#200 owned by Joe. 
     2653    @search eval=gt(money(##),10)     <-- list all objects owned by me   
     2654                                          worth more than 10 coins. 
    26182655   
    26192656  If <class>=POWERS, only objects with the given power are listed. Only 
  • 1.7.7/game/txt/hlp/penncode.hlp

    r399 r417  
    1616This code version is being maintained by Javelin, aka Alan Schwartz.  
    1717Suggestions, comments, and bug reports are welcome; send email to 
    18 dunemush@pennmush.org.  For information about changes in versions of the  
    19 code, see 'help changes'. 
     18pennmush-developers@pennmush.org.  For information about changes in  
     19versions of the code, see 'help changes'. 
    2020& i18n 
    2121& internationalization 
  • 1.7.7/game/txt/hlp/pennconf.hlp

    r357 r417  
    138138  max_attrs_per_obj=<number>: The maximum attributes an object can have. 
    139139  max_logins=<number>: The maximum number of connected players. 
     140  max_guests=<number>: The maximum number of connected guests. If 0,  
     141   no limit. If -1, limited by the number of guest players in the db. 
    140142  idle_timeout=<number>: The number of minutes a connection can be idle 
    141143   before getting booted. 0 means no limit. 
  • 1.7.7/game/txt/hlp/pennflag.hlp

    r411 r417  
    5151  d - Destroy_Ok        e - Enter_Ok            g - Gagged 
    5252  h - Halt              j - Jury_Ok             l - Light              
    53   m - Myopic            n - No_Command          o - On-Vacation 
     53  m - Myopic, Mistrust  n - No_Command          o - On-Vacation 
    5454  p - Puppet, Paranoid  r - Royalty             s - Suspect 
    5555  t - Transparent       u - Uninspected         v - Verbose 
     
    406406 
    407407  See also: DBREF 
     408& MISTRUST 
     409  Flag:  MISTRUST  (things, rooms, exits) 
     410 
     411  Mistrust prevents an object from controlling anything but 
     412  itself. This will also usually prevent it from examining anything else 
     413  non-VISUAL owned by the same player. It also prevents the object 
     414  from benefitting from its owner's no_pay, no_kill, and no_quota 
     415  powers, if any. 
     416 
     417  This flag can be used when you wish a single player to retain ownership 
     418  of objects that other players will use to run arbitrary commands, 
     419  and don't want those objects to be able to affect your objects. 
     420 
     421  (Note, however, that a Wizard object will ignore this flag, a see_all 
     422  object will still be able to examine anything, a no_pay object will 
     423  still have unlimited money, etc. This flag works best when no other 
     424  privileges are granted to the object.) 
     425 
     426  See also: control 
    408427& NOACCENTS 
    409428  Flag: NOACCENTS  (players) 
     
    495514  Flag:  OPAQUE  (all types) 
    496515 
    497   When set on yourself, it prevents other players from  
    498   seeing what you are carrying in your inventory. This applies to 
    499   everyone and everything, even wizards and royalty, or to stuff 
    500   that you own. It works the same way on objects. 
     516  When set on yourself, it prevents other players from seeing what you are 
     517  carrying in your inventory. This applies to everyone and everything, 
     518  even wizards and royalty, or to stuff that you own. It works the same 
     519  way on objects. This flag also prevents people inside an object 
     520  from using look/outside. 
    501521 
    502522  When set on an exit in a TRANSPARENT room, the exit is displayed 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r411 r417  
    215215  list()        lnum()        mudname()     null()        objeval()      
    216216  open()        pcreate()     r-function    rand()        restarts()     
    217   s-function    set()         setq()        setr()        soundex()      
    218   soundslike()  tel()         textfile()    valid()       version()      
    219   wipe()        @@() 
     217  s-function    scan()        set()         setq()        setr()         
     218  soundex()     soundslike()  tel()         textfile()    valid()        
     219  version()     wipe()        @@() 
    220220 
    221221& @@() 
     
    625625  be specified: 
    626626      <type>            Comparison 
    627         A               Case-sensitive lexicographic (default) 
    628         I               Case-insensitive lexicographic 
     627        A               Maybe case-sensitive lexicographic (default) 
     628        I               Always case-insensitive lexicographic 
    629629        D               Dbrefs of valid objects 
    630630        N               Integers 
    631631        F               Floating point numbers 
     632 
     633  Whether or not the a sort type is case-sensitive or not depends 
     634  on the particular mush and its environment. 
    632635& CON() 
    633636  con(<object>) 
     
    27822785  if vf were @trigger me/ve, then triggering the vf makes the ve  
    27832786  return "This is <object>" 
    2784      
     2787 
     2788& SCAN() 
     2789  scan(<object>, <command>) 
     2790 
     2791  This function works like @scan, and returns a space-separated list of  
     2792  dbref/attribute pairs containing $commands that would be triggered if 
     2793  <command> were run by <object>. You must control <object> or be 
     2794  See_All to use this function. 
     2795 
    27852796& SCRAMBLE() 
    27862797  scramble(<string>) 
    2787    
    2788   This function scrambles a string, returning a random permutation of its  
     2798 
     2799  This function scrambles a string, returning a random permutation of its 
    27892800  characters. For example, "[scramble(abcdef)]" might return "cfaedb". 
    27902801  Note that this function does not pay any attention to spaces or other 
    27912802  special characters; it will scramble these characters just like normal 
    27922803  characters. 
    2793    
     2804 
    27942805& SECS() 
    27952806  secs() 
    2796   
     2807 
    27972808  This function takes no arguments, and returns the number of elapsed 
    27982809  seconds since midnight, January 1, 1970 UTC. UTC is the base time zone, 
     
    28012812& SECURE() 
    28022813  secure(<string>) 
    2803   
     2814 
    28042815  This function returns <string> with all "dangerous" characters replaced 
    2805   by spaces. Dangerous characters are ( ) [ ] { } $ % , ^ and ; 
    2806   This can make output slightly ugly, but it's a good way of preventing 
    2807   other people from doing nasty things with your objects. 
     2816  by spaces. Dangerous characters are ( ) [ ] { } $ % , ^ and ; This 
     2817  can make output slightly ugly, but it's a good way of preventing other 
     2818  people from doing nasty things with your objects. 
    28082819 
    28092820  See also: ESCAPE() 
     
    29702981  The following letters as a second argument specify a certain sort: 
    29712982  
    2972   'a':  Sort lexicographically. 
    2973   'd':  Sort dbrefs. 
    2974   'n':  Sort integer numbers. 
    2975   'f':  Sort decimal numbers. 
     2983  a:  Sort lexicographically (Maybe case-sensitive). 
     2984  i:  Sort lexicographically (Always case-insensitive). 
     2985  d:  Sort dbrefs. 
     2986  n:  Sort integer numbers. 
     2987  f:  Sort decimal numbers. 
     2988 
     2989  Whether or not the a sort type is case-sensitive or not depends 
     2990  on the particular mush and its environment. 
    29762991   
    29772992  The optional third argument gives the list's delimiter character. 
     
    32873302  See HELP CTU() for more on the angle type. 
    32883303& TEL() 
    3289   tel(<object>,<destination>
     3304  tel(<object>,<destination>[,<silent>]
    32903305 
    32913306  This function will teleport <object> to <destination>, exactly as 
    3292   @tel <object>=<destination>. 
     3307  @tel <object>=<destination>. <silent> is an optional boolean that, 
     3308  if true, makes the function act like @tel/silent. 
    32933309 
    32943310  See also: @tel 
  • 1.7.7/game/txt/hlp/penntop.hlp

    r411 r417  
    321321  3. If O is a Wizard, O controls V 
    322322  4. If V is Royalty, O must be Royalty, Wizard or God 
    323   5. If V and O are owned by the same player: 
    324      5a. If V is not TRUST, O controls V 
    325      5b. If V is TRUST, O must be TRUST or the player must be TRUST 
    326   6. If V is on a zone, and isn't a player and isn't TRUST, 
     323  5. If O is MISTRUST, O must be V to control V 
     324  6. If V and O are owned by the same player: 
     325     6a. If V is not TRUST, O controls V 
     326     6b. If V is TRUST, O must be TRUST or the player must be TRUST 
     327  7. If V is on a zone, and isn't a player and isn't TRUST, 
    327328     O controls V if O passes the zone-lock of the zone. 
    328   7. If V is owned by a SHARED player, and V isn't a player and isn't set 
     329  8. If V is owned by a SHARED player, and V isn't a player and isn't set 
    329330     TRUST, O controls V if O passes the zone-lock of the SHARED player. 
    330331 
    331   Step 6 is skipped if config(zone_control_zmp_only) is on. 
     332  Step 7 is skipped if config(zone_control_zmp_only) is on. 
    332333  There's also one special case: anyone can @link an unlinked exit 
    333334  (at which point the exit is @chowned to the linker). 
    334335 
    335   See also: controls(), TRUST, ZONES, SHARED PLAYERS 
     336  See also: controls(), TRUST, MISTRUST, ZONES, SHARED PLAYERS 
    336337& COSTS 
    337338  These are usually: 
  • 1.7.7/game/txt/hlp/pennvers.hlp

    r415 r417  
    11& changes 
    2 & 1.7.7p8 
     2& 1.7.7p9 
    33This is a list of changes in this patchlevel which are probably of 
    44interest to players. More information about new commands and functions 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.7.7 patchlevel 9                      January 27, 2003 
     15 
     16Functions: 
     17  * New function scan() works like @scan. Suggested by Viila@M*U*S*H. 
     18Flags: 
     19  * New flag, MISTRUST, prevents an object from controlling anything 
     20    but itself. 
     21Configuration: 
     22  * mush.cnf directives ansi_justify, globals, and global_connects have 
     23    been removed (they are now always on). 
     24  * New unconnected_idle_timeout directive in mush.cnf controls 
     25    timeouts for connections idle at the connect screen. 
     26  * New max_guests directive in mush.cnf can limit the number of  
     27    guests allowed to connect at once. Suggested by Sholevi@M*U*SH. 
     28Minor Changes: 
     29  * New lflags search class takes a list of flag names. 
     30  * Improved connection failure messages. 
     31  * Somewhat more informative message when you @chan/gag,hide,mute 
     32    all channels at once. Suggested by Tanaku and Kevin@M*U*S*H. 
     33  * Began commenting files using doxygen. 
     34  * Internal code cleanup. Mostly converting some magic numbers to  
     35    #define'd symbols, and some #define'd symbols to enums for better 
     36    debugging and improved readability. Also some conversion of old 
     37    K&R style functions. [SW] 
     38  * sort() and the set functions understand all the same comparison 
     39    types as comp(). [SW] 
     40  * Case-sensitive comparison currently isn't always possible, depending 
     41    on the locale the mush is running on. Help files reflect this. [SW] 
     42  * @uptime shows the time of the last successful database save, and 
     43    the time of future events like saves, not just the time until them. 
     44    Suggested by Cheetah@M*U*S*H. [SW] 
     45  * Improvements to reporting of failed saves. [SW] 
     46  * Code cleanup. [SW] 
     47  * tel() now takes a third argument that makes it function like 
     48    @tel/silent. Suggested by Cheetah@M*U*S*H. [SW] 
     49  * @idescformat operates like @descformat for internal descriptions. 
     50    Suggested by Tanya@M*U*S*H. 
     51Fixes: 
     52  * local_startup() was getting run earlier than in the past due to 
     53    changes in the startup sequence. This has been rectified, so 
     54    local_startup() again runs after all other initialization (and 
     55    just before all object startups are triggered). Report by 
     56    BladedThoth and grapenut@M*U*S*H. 
     57  * Improved testing for openssl libraries in Configure. The old 
     58    approach used to cause problems on systems with runtime-only 
     59    openssl installations without development libraries. 
     60  * help opaque mentions that opaque blocks look/outside. Suggested 
     61    by Cheetah@M*U*S*H. 
     62  * itext() and inum() now generate an error on a null argument, 
     63    regardless of tiny_math and null_eq_zero settings. Reported by 
     64    Intrevis@M*U*S*H. 
     65  * Another fix to the new matcher. Bug report by Kyieren@M*U*S*H. 
     66  * @flag/alias was broken. Fixed. Reported by Kevin@M*U*S*H.  
     67 
     68 
     69& 1.7.7p8 
    1470Version 1.7.7 patchlevel 8                      January 27, 2003 
    1571 
     
    682738  * Indentation fixes [SW] 
    683739  * Fixes up to 1.7.4p12 merged in. 
     740 
     741& 1.7.6p7 
     742Version 1.7.6 patchlevel 7                      January 23, 2003 
     743 
     744Fixes: 
     745   * Some sloppy coding in src/access.c could generate runtime  
     746     debugging exceptions. Reported by BladedThoth@M*U*S*H. 
     747   * wrap() could behave incorrectly when a line was exactly the length 
     748     of the wrap width and the total input size was larger than  
     749     any previously wrapped input. Reported by Liam@Firdeloth. 
     750   * Extra NUL characters were sent after telnet codes, which  
     751     confused Mudnet and maybe some clients. Patch by Alierak. 
     752 
    684753 
    685754& 1.7.6p6 
     
    33683437         works. Report by Vedui. 
    33693438 
    3370  
    3371 & 1.6.10p6 
    3372 Version 1.6.10 patchlevel 6                   May 11, 1997 
    3373  
    3374 Fixes: 
    3375         * inc() and dec() didn't work right with NULL_EQ_ZERO. 
    3376           Fixed. Report by Dennis DeMarco 
    3377  
    33783439& 1.7.1p3 
    33793440Version 1.7.1 patchlevel 3                    January 12, 1998 
     
    34683529          Reported by Leo@ATS TrekMUSH 
    34693530        * @chan/gag now works correctly. Report by Vedui. 
    3470  
    3471  
    3472 & 1.7.0p11 
    3473 Version 1.7.0 patchlevel 11                    November 18, 1997 
    3474  
    3475 Fixes: 
    34763531        * Help for remove() updated. Reported by Vedui@Robotech. 
    34773532        * hasattr() didn't check if the invoker had permission to read 
     
    60456100type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    60466101 
    6047 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8 
    6048 1.7.6: 0, 1, 2, 3, 4, 5, 6 
     61021.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 
     61031.7.6: 0, 1, 2, 3, 4, 5, 6, 7 
    604961041.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
    605061051.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
     
    60546109       19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 
    605561101.7.1: 0, 1, 2, 3 
    6056 1.7.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11 
    6057 1.6.10: 0, 1, 2, 3, 4, 5, 6, 6 
     61111.7.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 
     61121.6.10: 0, 1, 2, 3, 4, 5, 6 
    605861131.6.9: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 
    605961141.6.8: 0, 1 
  • 1.7.7/hdrs/access.h

    r405 r417  
    22#define __ACCESS_H 
    33 
    4 /* A linked list data structure to hold the access info */ 
     4/** Access information for a host-pattern. 
     5 * This structure holds access information for a given host-pattern. 
     6 * It's organized into a linked list of access rules. 
     7 */ 
    58struct access { 
    6   char host[BUFFER_LEN]; 
    7   char comment[BUFFER_LEN]; 
    8   dbref who; 
    9   int can; 
    10   int cant; 
    11   struct access *next; 
     9  char host[BUFFER_LEN];   /**< The host pattern */ 
     10  char comment[BUFFER_LEN];    /**< A comment about the rule */ 
     11  dbref who;           /**< Who created this rule if sitelock used */ 
     12  int can;         /**< Bitflags of what the host can do */ 
     13  int cant;            /**< Bitflags of what the host can't do */ 
     14  struct access *next;     /**< Pointer to next rule in the list */ 
    1215}; 
    1316 
  • 1.7.7/hdrs/atr_tab.h

    r399 r417  
    6868  {"GIVE", AF_NOPROG | AF_PREFIXMATCH, NULL, 0, NULL}, 
    6969  {"HAVEN", AF_NOPROG | AF_PREFIXMATCH, NULL, 0, NULL}, 
     70  {"IDESCFORMAT", AF_NOPROG | AF_PREFIXMATCH, NULL, 0, NULL}, 
    7071  {"IDESCRIBE", AF_NOPROG | AF_PREFIXMATCH, NULL, 0, NULL}, 
    7172  {"IDLE", AF_NOPROG | AF_PREFIXMATCH, NULL, 0, NULL}, 
  • 1.7.7/hdrs/attrib.h

    r399 r417  
    22#define _ATTRIB_H 
    33 
    4 /* the attribute structure */ 
     4/** An attribute on an object. 
     5 * This structure represents an attribute set on an object. 
     6 * Attributes form a linked list on an object, sorted alphabetically. 
     7 */ 
    58struct attr { 
    6   char const *name;     /* name of attribute */ 
    7   int flags; 
    8   unsigned char *value; 
    9   dbref creator; 
    10   ATTR *next; 
     9  char const *name;     /**< Name of attribute */ 
     10  int flags;           /**< Attribute flags */ 
     11  unsigned char *value;        /**< The attribute's value, compressed */ 
     12  dbref creator;       /**< The attribute's creator's dbref */ 
     13  ATTR *next;          /**< Pointer to next attribute in list */ 
    1114}; 
    1215 
  • 1.7.7/hdrs/boolexp.h

    r399 r417  
    2828#define OWNER_TOKEN '$' 
    2929 
     30/** An attribute lock specification. 
     31 * This structure is a piece of a boolexp that's used to store  
     32 * attribute locks (CANDO:1), eval locks (CANDO/1), and flag locks 
     33 * FLAG^WIZARD. 
     34 */ 
    3035struct boolatr { 
    31   const char *name;     /* which attribute? */ 
    32   char text[BUFFER_LEN]; 
     36  const char *name;     /**< Name of attribute, flag, etc. to test */ 
     37  char text[BUFFER_LEN];   /**< Value to test against */ 
    3338}; 
    3439 
     40/** A boolean expression. 
     41 * Boolean expressions are most widely used in locks. This structure 
     42 * is a general representation of the possible boolean expressions 
     43 * that can be specified in MUSHcode. 
     44 */ 
    3545struct boolexp { 
    36   boolexp_type type;        /* and, or, not, indirect, is, carry, etc. */ 
    37   dbref thing;          /* thing refers to an object, or boolean val */ 
     46  /** Type of expression. 
     47   * The type of expressio is one of the boolexp_type's, such as 
     48   * and, or, not, constant, attribute, indirect, carry, is, 
     49   * owner, eval, flag, etc. 
     50   */ 
     51  boolexp_type type; 
     52  dbref thing;          /**< An object, or a boolean val */ 
     53  /** The expression itself. 
     54   * This union comprises the various possible types of data we 
     55   * might need to represent any of the expression types. 
     56   */ 
    3857  union { 
     58    /** And and or locks: combinations of boolexps. 
     59     * This union member is used with and and or locks. 
     60     */ 
    3961    struct { 
    40       struct boolexp *a; 
    41       struct boolexp *b; 
    42     } sub;         /* For and and or locks */ 
    43     struct boolexp *n;      /* For not locks */ 
    44     struct boolatr *atr_lock;   /* For atr, eval and flag locks */ 
    45     const char *ind_lock;   /* For indirect locks */ 
     62      struct boolexp *a;   /**< One boolean expression */ 
     63      struct boolexp *b;   /**< Another boolean expression */ 
     64    } sub; 
     65    struct boolexp *n;      /**< Not locks: boolean expression to negate */ 
     66    struct boolatr *atr_lock;   /**< Atr, eval and flag locks */ 
     67    const char *ind_lock;   /**< Indirect locks */ 
    4668  } data; 
    4769}; 
  • 1.7.7/hdrs/command.h

    r415 r417  
    103103 
    104104typedef struct command_alias COMALIAS; 
     105/** An alias to a command. 
     106 * This structure represents a command alias, which consists of the command's 
     107 * r