PennMUSH Community

Changeset 469

Show
Ignore:
Timestamp:
08/16/06 01:19:38 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p35 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.7.7/CHANGES.177

    r467 r469  
    1818 
    1919========================================================================== 
     20 
     21Version 1.7.7 patchlevel 35                     July 21, 2004 
     22 
     23Attributes: 
     24  * NO_NAME and NO_SPACE attribute flags, when applied to @o-message 
     25    attributes, omit either the enactor's name or the space after it 
     26    when sending the message to others. Patch by Walker@M*U*S*H. [3] 
     27Commands: 
     28  * @break <expression>=<new command> now runs <new command> 
     29    instead of simply stopping execution when <expression> is true. 
     30    New command @assert breaks and runs new command when <expression> 
     31    is false.  Suggested by Philip Mak and Zebranky@M*U*S*H. Patch by  
     32    Walker@M*U*S*H. 
     33  * The new command 'huh_command' is responsible for handling unmatched 
     34    command input. By default, it produces the usual Huh? message, but 
     35    it can be overridden with @hook. Logging of huhs is now controlled 
     36    in restrict.cnf and the log_huhs mush.cnf directive is removed. 
     37    Suggested by T'orA and Walker@M*U*S*H. 
     38  * New @decompile/prefix switch generalizes @decompile/tf. 
     39    Prefixes are now applied even when decompiling multiple attributes, 
     40    and a bug in doing so is corrected. Patch by Walker@M*U*S*H. 
     41  * New @edit/first switch only replaces first occurrence of string. 
     42    Suggested by Kevin@M*U*S*H. 
     43Functions: 
     44  * malias() function for examining mail aliases. Inspired by 
     45    Kevin@M*U*S*H. 
     46  * llocks()/locks() lists locks on an object. Patch by Walker@M*U*S*H. 
     47  * lset() function works like @lset. Patch by Walker@M*U*S*H. 
     48  * lockflags() and llockflags() show short and long flags set on a lock. 
     49    Patch by Walker@M*U*S*H. 
     50  * lattrp() is lattr() including parent attribs. Patch by Walker@M*U*S*H. 
     51  * nattr(obj/wildcardpattern) is now supported. Patch by Walker@M*U*S*H. 
     52  * nattrp() is nattr() including parent attribs. Patch by Walker@M*U*S*H. 
     53  * xattr(obj/wildcardpattern,start,count) extracts the corresponding 
     54    elements from lattr(). xattrp() is xattr() including parent attribs.  
     55    Patch by Walker@M*U*S*H. 
     56Minor changes (user-visible): 
     57  * @lset and lock() recognize locks beginning with user:. Patch by 
     58    Walker@M*U*S*H. 
     59  * When a player causes an ambiguous channel match, the error message 
     60    mentions CHAN_USEFIRSTMATCH, which now has a help entry. 
     61    Suggested by Luke@M*U*S*H. 
     62  * New sort options: sorting by dbref name, idle time, connection seconds,  
     63    creation time, owner dbref, and attribute values.  sort() and any  
     64    functions that use list2arr() are now ansi-aware. Patch by Walker@M*U*S*H. 
     65  * You can @name yourself to your @alias; this swaps name and alias. 
     66    Suggested by Oriens@Alexandria. Patch by Walker@M*U*S*H. 
     67Minor changes (internals): 
     68  * Several global variables are now encapsulated in a single structure 
     69    to reduce potential namespace clashes. 
     70  * Reorganization of some filecopy.c code. [SW] 
     71Fixes: 
     72  * @mail manipulation specifying folder 0 explicitly when the 
     73    current folder is non-zero didn't work right. Report by  
     74    Jess Hawthorne. 
     75  * Buffer overflow in string handling fixed. Report by Ashen-Shugar. 
     76  * @sitelock/name of an already locked name no longer creates extra 
     77    entries. Report by Nymeria@M*U*S*H. 
     78  * make depend no longer produces an unterminated Makefile.SH. 
     79    Reported by Bytor and Cheetah@M*U*S*H. 
     80  * Help fixes by [SW]. 
     81  * Fix to replace_string2 to prevent overflow situations. Report by 
     82    Atuarre. [SW]. 
     83  * Removed non-static shutdownsock prototype in hdrs/mysocket.h. 
     84    Report by Kholnuu@M*U*S*H. 
     85  * SQL code should be much more memory-efficient. [SW] 
     86  * Code cleanup and fixes to some memory leaks with strcoll. [SW] 
     87 
    2088 
    2189Version 1.7.7 patchlevel 34                     June 22, 2004 
  • 1.7.7/COPYRITE

    r443 r469  
    1414 * Copyright (c) 1994-2002, Jean Marie Diaz, Lydia Leong, and Devin Hooker. 
    1515 * 
    16  * Some code used in this server may have been directive from TinyMUSH 2.0. 
     16 * Some code used in this server may have been derived from TinyMUSH 2.0. 
    1717 * Copyright (c) 1995, Joseph Traub, Glenn Crocker. 
    1818 * 
    19  * Some code used in this server may have been directive from TinyMUD. 
     19 * Some code used in this server may have been derived from TinyMUD. 
    2020 * Copyright (c) 1995, David Applegate, James Aspnes, Timothy Freeman 
    2121 * and Bennet Yee. 
  • 1.7.7/Patchlevel

    r467 r469  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p34 
     2This is PennMUSH 1.7.7p35 
  • 1.7.7/README.SQL

    r463 r469  
    1717   III. SQL setup tips 
    1818 
    19 I. Compiling with OpenSS
     19I. Compiling withi MySQ
    2020 
    2121  The Configure script distributed with PennMUSH automatically detects 
  • 1.7.7/game/README

    r463 r469  
    1111all need to be there. 
    1212 
    13 WIN32
     13WIN32 WITH MSVC++
    1414  Under win32 using the Microsoft compiler, ignore the restart script. 
    1515  In the configuration file, turn off disk database compression; it is 
     
    1717  Poof, you're done. 
    1818 
    19 UNIX
     19UNIX or WIN32 VIA CYGWIN/MINGW
    2020  Edit the restart script. Change GAMEDIR to the path to the directory 
    2121  containing mush.cnf. Read about the optional settings in that file. 
  • 1.7.7/game/aliascnf.dst

    r459 r469  
    4848function_alias trunc val 
    4949function_alias nattr attrcnt 
     50function_alias nattrp attrpcnt 
    5051function_alias iter parse 
    5152function_alias modulo mod 
  • 1.7.7/game/mushcnf.dst

    r463 r469  
    497497log_commands no 
    498498 
    499 # log commands which produce "Huh?" 
    500 log_huhs no 
    501  
    502499# log forces done by wizards 
    503500log_forces yes 
  • 1.7.7/game/txt/hlp/pennattr.hlp

    r463 r469  
    9393object may impose stricter restrictions, however, and these may prevent 
    9494access to inherited parent data. 
     95& NONAME 
     96& NOSPACE 
     97  @o-* Attributes set NONAME will not prepend the enactor's name to their 
     98  message. Similarily, attributes set NOSPACE will not append a space 
     99  to the enactor's name in their message. 
    95100 
     101  > @create anvil 
     102  > @lock anvil=#false 
     103  > @ofailure anvil=s strength is not enough to pick up the anvil. 
     104  > @set anvil/ofailure=nospace 
     105  > get anvil 
     106  (spectators see:) 
     107  Walkers strength is not enough to pick up the anvil. 
     108 
     109  > @ofailure anvil=The anvil is too heavy for %N to pick up. 
     110  > @set anvil/ofailure=noname 
     111  > get anvil 
     112  (spectators see:) 
     113  The anvil is too heavy for Walker to pick up. 
  • 1.7.7/game/txt/hlp/pennchat.hlp

    r451 r469  
    3434  being clobbered by the chat system. 
    3535 
    36   See also: chat 
     36  See also: chat, CHAN_USEFIRSTMATCH 
     37& CHAN_USEFIRSTMATCH 
     38  CHAN_USEFIRSTMATCH (any type) 
     39 
     40  When this flag is set on an object that uses the chat system, 
     41  channel name matching will default to the first matching channel 
     42  in cases of ambiguity. Without this flag, attempting to use an 
     43  ambiguous partial channel name will produce an error. 
     44 
    3745& @cemit 
    3846  @cemit[/noisy][/noeval] <channel>=<message> 
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r467 r469  
    419419 
    420420& @BREAK 
    421   @break <boolean> 
     421& @ASSERT 
     422  @break  <boolean>[=<command list>] 
     423  @assert <boolean>[=<command list>] 
    422424 
    423425  @break stops the execution of further commands in the current action 
    424   list if its argument is a true value. It doesn't affect new queue 
    425   entries made by previous commands in the action list. Very useful to 
    426   people who don't like @switch. 
     426  list if <boolean> is a true value. It doesn't affect new queue entries 
     427  made by previous commands in the action list. Very useful to people who 
     428  don't like @switch. If <command> is given, it is executed instead of 
     429  the rest of the commands in the current queue. 
     430 
     431  @assert does the inverse: stopping execution if <boolean> evaluse to false. 
    427432 
    428433  Examples: 
     
    805810& @decompile 
    806811  @decompile[</switch>] <object>[/<attribute-pattern>] 
    807   @decompile/tf <object>/<attrib
     812  @decompile/prefix <object>[/<attribute-pattern>]=<prefix
    808813 
    809814  This command produces a list of the commands that you would have to 
     
    811816  from one MUSH to another, or for making logs of important objects to 
    812817  protect against an accidental @nuke or a crash. 
     818 
     819  When the /prefix switch is specified, and a prefix given, all output 
     820  lines will be prefixed with <prefix>. Good for creating client-side 
     821  scripts to edit code with. 
    813822 
    814823  You can either @decompile an entire object, or just certain parts of it. 
     
    839848& @decompile3 
    840849 
    841   @decompile/tf <object>/<attribute> 
    842  
    843   The /tf switch is useful only for users of the popular "TinyFugue"  
    844   client program (available from ftp.tcp.com in the directory 
    845   /pub/muds/Clients/tinyfugue). If you do have this program, this 
    846   switch is invaluable for editing code online, because it will grab the  
    847   code to set that attribute and put it into your buffer. 
    848  
    849   To use @dec/tf, first type this command into TinyFugue: 
    850  
    851     /def -ag -mglob -p100 -t"FugueEdit > *" fe = /grab %-2 
    852  
    853   (you can also put this into your .tfrc so it will automatically 
    854   be entered every time you start TinyFugue (tf).) This command works 
    855   just like the 'FugueEdit' object originally created by van@TinyTIM. 
     850  @decompile/tf <object>[/<attribute>] 
     851 
     852  Supplying the /tf switch makes @decompile act exactly as if you typed: 
     853  @decompile/prefix <object>[/<attribute>]=FugueEdit >%b 
    856854 
    857855  You can use a string other than "FugueEdit > " by setting your 
    858856  TFPREFIX attribute. This is probably a good idea. 
     857 
     858  The /tf switch is handy for grabbing code and placing it right 
     859  into your input window. To do this: 
     860 
     861    In TinyFugue: 
     862      /def -ag -mglob -p100 -t"FugueEdit > *" fe = /grab %-2 
     863 
     864    In SimpleMU: 
     865      Set your Options -> Grab Password 
     866      @set me=tfprefix:<grabpassword>FugueEdit >%b 
     867 
    859868See also: CLIENTS, ATTRIBUTES, WILDCARDS, MUSHCODE 
    860869& @describe 
     
    21622171    @name me = "James Bond" 
    21632172 
     2173  When changing a player's name to their alias, their current name and 
     2174  their alias are swapped. 
     2175 
    21642176  Changing the name of <object> will cause object to execute its 
    21652177  ONAME and ANAME. The old name will be passed at %0 to these; 
     
    22542266  If the =<message> part is omitted, the message will be reset. 
    22552267 
    2256 See also: drop, @drop, @adrop 
     2268See also: drop, @drop, @adrop, NONAME, NOSPACE 
    22572269& @oefail 
    22582270  @oefail <object> [= <message>] 
     
    23092321  If the =<message> part is omitted, the message will be reset. 
    23102322 
    2311 See also: FAILURE, @lock, @failure, @afailure 
     2323See also: FAILURE, @lock, @failure, @afailure, NONAME, NOSPACE 
    23122324& @ofollow 
    23132325  @ofollow <object> [= <message>] 
     
    24362448  If the =<message> part is omitted, the message will be reset. 
    24372449 
    2438 See also: take, @success, @asuccess, @lock, FAILURE 
     2450See also: take, @success, @asuccess, @lock, FAILURE, NONAME, NOSPACE 
    24392451& @otport 
    24402452  @otport <object> [=<message>] 
     
    29182930  mortal_dark (m)   Attribute cannot be seen by mortals. This flag can only  
    29192931                    be set by royalty and wizards.  "hidden" is a synonym. 
     2932 
     2933  Continued in 'help attribute flags2' 
     2934& attribute flags2 
     2935  noname (N)        Attribute won't show name in @o-* messages. 
     2936  nospace (s)       Attribute won't append a space in @o-* messages. 
    29202937  wizard (w)        Attribute can only be set by wizards.  
    29212938                    This flag can only be set by royalty and wizards. 
  • 1.7.7/game/txt/hlp/penncode.hlp

    r459 r469  
    6262Copyright (c) 1994-2002, Jean Marie Diaz, Lydia Leong, and Devin Hooker. 
    6363 
    64 Some code used in this server may have been directive from TinyMUSH 2.0. 
     64Some code used in this server may have been derived from TinyMUSH 2.0. 
    6565Copyright (c) 1995, Joseph Traub, Glenn Crocker. 
    6666 
    67 Some code used in this server may have been directive from TinyMUD. 
     67Some code used in this server may have been derived from TinyMUD. 
    6868Copyright (c) 1995, David Applegate, James Aspnes, Timothy Freeman 
    6969and Bennet Yee. 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r467 r469  
    145145  folderstats() mail()        maildstats()  mailfrom()    mailfstats() 
    146146  mailsend()    mailstats()   mailstatus()  mailsubject() mailtime() 
     147  malias() 
    147148   
    148149& List functions 
     
    11661167  returns <string> after adding the escape character ('\') at the  
    11671168  beginning of the string, and before the following characters: 
    1168   %  ;  [  ]  {  }  \ ( ) , 
     1169  %  ;  [  ]  {  }  \ ( ) , ^ $ 
    11691170   
    11701171  This function prevents strings entered by players from causing side  
     
    13141315 
    13151316  Given no arguments, this function returns a space-separated list 
    1316   of all flag names know to the server. 
     1317  of all flag names known to the server. 
    13171318 
    13181319  See also: flags() 
     
    18801881  See also: first(), rest() 
    18811882& LATTR() 
     1883& LATTRP() 
    18821884  lattr(<object>[/<attribute pattern>]) 
     1885  lattrp(<object>[/<attribute pattern>]) 
    18831886  
    18841887  Returns a space-separated list of the attribute names on the object. 
     
    18911894  wildcards as examine (?, *, **). 
    18921895 
     1896  lattrp() also includes attributes inherited from parents. 
     1897 
    18931898  See also: nattr(), examine 
    18941899& NATTR() 
     1900& NATTRP() 
    18951901& ATTRCNT() 
    1896   nattr(<object>) 
    1897   attrcnt(<object>)  
     1902& ATTRPCNT() 
     1903  nattr(<object>[/<attribute-pattern>]) 
     1904  nattrp(<object>[/<attribute-pattern>]) 
     1905  attrcnt(<object>[/<attribute-pattern>])  
     1906  attrpcnt(<object>[/<attribute-pattern>])  
    18981907 
    18991908  This function (known by two names) returns the number of attributes 
     
    19031912  than words(lattr()) and doesn't suffer from buffer length constraints. 
    19041913  It's designed primarily for statistical purposes. 
     1914 
     1915  nattrp() and attrpcnt() also count matching attributes on the parent. 
    19051916 
    19061917  See also: lattr() 
     
    21252136  This is a side-effect function and may not be enabled on some MUSHes. 
    21262137  
    2127   See also: @lock, locktypes 
     2138  See also: @lock, locktypes, lockflags(), llockflags(), lset(), llocks() 
     2139& LLOCKS() 
     2140& LOCKS() 
     2141  llocks(<object>) 
     2142  locks(<object>) 
     2143 
     2144  llocks(), aliased locks(), list locks set on <object>, including 
     2145  user-defined locks (prefixed with USER:) 
     2146 
     2147  > @lock me==me 
     2148  > @lock/use me==me 
     2149  > @lock/user:itsme me==me 
     2150  > th llocks(me) 
     2151  Basic USER:ITSME Use 
     2152 
     2153  See also: lock(), lset(), lockflags(), llockflags() 
     2154& LOCKFLAGS() 
     2155  lockflags(<object>[/<locktype>]) 
     2156  lockflags() 
     2157 
     2158  lockflags() returns a string consisting of the flags attached to 
     2159  the specified lock on the object. The string is a single word 
     2160  made up of all the appropriate flag letters. 
     2161 
     2162  Given no arguments, this function returns a string consisting of 
     2163  all the flag letters the server knows. 
     2164 
     2165  See also: llockflags(), lset(), lock(), llocks() 
     2166& LLOCKFLAGS() 
     2167  llockflags(<object>[/<locktype>]) 
     2168  llockflags() 
     2169 
     2170  llockflags returns a space-separated list consisting of the names 
     2171  of flags attached to the specified lock on the object. 
     2172 
     2173  Given no arguments, this function returns a space-separated list 
     2174  of all flag names known to the server. 
     2175 
     2176  See also: llockflags(), lset(), lock(), llocks() 
     2177& LSET() 
     2178  lset(<object>/<lock type>,[!]<flag>) 
     2179   
     2180  This functions sets or clears flags on locks. 
     2181   
     2182  See 'help @lset' for more information on what flags are available. 
    21282183& LOG() 
    21292184  log(<number>[, <base>]) 
     
    23192374  This function sends a message to a player, just like @mail/send. 
    23202375  It returns nothing if successful, or an error message. 
     2376& MALIAS() 
     2377  malias([<delimiter>]) 
     2378  malias(<malias name>) 
     2379  malias(<malias name>[,<delimiter>]) 
     2380 
     2381  With no arguments, malias() returns the list of all malias names 
     2382  which are visible to the player. With two arguments, returns the list 
     2383  of dbrefs that are members of the given malias, delimited by 
     2384  <delimiter>. 
     2385 
     2386  With one argument, the behavior is ambiguous. If the argument 
     2387  matches a malias, returns the list of dbrefs that are memebrs of 
     2388  the malias, space-delimited. If not, it's treated as a no-argument 
     2389  case with a delimiter. 
     2390 
    23212391& MAP() 
    23222392  map([<object>/]<attribute>,<list>[,<delim>][, <osep>]) 
     
    31893259  elements in <list1> that aren't in <list2>. The list that is 
    31903260  returned is sorted. Normally, alphabetic sorting is done. You can 
    3191   change this with the fourth argument, which takes the same form as 
    3192   sort()'s second. If used with exactly four arguments where the fourth 
     3261  change this with the fourth argument, which is a sort type as defined 
     3262  in help sorting. If used with exactly four arguments where the fourth 
    31933263  is not a sort type, it's treated instead as the output separator. 
    31943264 
     
    32033273  elements that are in both <list1> and <list2>. The list that is 
    32043274  returned is sorted. Normally, alphabetic sorting is done. You can 
    3205   change this with the fourth argument, which takes the same form as 
    3206   sort()'s second. If used with exactly four arguments where the fourth 
     3275  change this with the fourth argument, which is a sort type as defined 
     3276  in help sorting. If used with exactly four arguments where the fourth 
    32073277  is not a sort type, it's treated instead as the output separator. 
    32083278  
     
    32743344  elements. Think of it as CAT() without words duplicated.  The list 
    32753345  returned is sorted. Normally, alphabetic sorting is done. You can 
    3276   change this with the fourth argument, which takes the same form as 
    3277   sort()'s second. If used with exactly four arguments where the fourth 
     3346  change this with the fourth argument, which is a sort type as defined 
     3347  in help sorting. If used with exactly four arguments where the fourth 
    32783348  is not a sort type, it's treated instead as the output separator. 
    32793349  
     
    33283398  the words are dbrefs, it will sort them in order of smallest to 
    33293399  largest. Otherwise, it will perform a lexicographic sort. 
    3330    
    3331   The following letters as a second argument specify a certain sort: 
    3332   
    3333   a:  Sort lexicographically (Maybe case-sensitive). 
    3334   i:  Sort lexicographically (Always case-insensitive). 
    3335   d:  Sort dbrefs. 
    3336   n:  Sort integer numbers. 
    3337   f:  Sort decimal numbers. 
    3338  
    3339   Whether or not the a sort type is case-sensitive or not depends 
    3340   on the particular mush and its environment. 
    3341    
     3400 
     3401  The second argument is a sort type. See help sorting. 
     3402  
    33423403  The optional third argument gives the list's delimiter character. 
    33433404  If not present, <delimiter> defaults to a space. 
     
    33683429 
    33693430  See also: anonymous attributes 
     3431& SORTING 
     3432  In functions where you can specify a sorting method, you can provide 
     3433  one of these sort types: 
     3434 
     3435  Type    Sorts: 
     3436   a       Sorts lexicographically (Maybe case-sensitive). 
     3437   i       Sorts lexicographically (Always case-insensitive). 
     3438   d       Sorts dbrefs. 
     3439   n       Sorts integer numbers. 
     3440   f       Sorts decimal numbers. 
     3441   name    Sorts dbrefs by their names. (Maybe case-sensitive) 
     3442   namei   Sorts dbrefs by their names. (Always case-insensitive) 
     3443   conn    Sorts dbrefs by their connection time. 
     3444   idle    Sorts dbrefs by their idle time. 
     3445   owner   Sorts dbrefs by their owner dbrefs. 
     3446   loc     Sorts dbrefs by their location dbref. 
     3447   ctime   Sorts dbrefs by their creation time. 
     3448 
     3449  The special sort key attr:<aname> or attri:<aname> will sort dbrefs 
     3450  according to their <aname> attributes. For example: Separating by 
     3451  &factions or &species attrs. attr is probably case-sensitive, and 
     3452  attri is case-insensitive. 
     3453 
     3454  Whether or not the 'a' sort type is case-sensitive or not depends 
     3455  on the particular mush and its environment. 
     3456 
     3457  See also: sort(), sortby(), setunion(), setinter(), setdiff() 
    33703458& SOUNDEX() 
    33713459  soundex(<word>) 
     
    42884376  @desc here=[iter(wrap(Hanging indent,72,76,|), 
    42894377                   [switch(#@,>1,space(4))]##,|,%r)] 
    4290  
     4378& XATTR() 
     4379& XATTRP() 
     4380  xattr(<object>[/<attribute pattern>],start,count) 
     4381  xattrp(<object>[/<attribute pattern>],start,count) 
     4382 
     4383  xattr() fetches <count> or fewer attribute names from <object>  
     4384  starting at position <start>. It is useful when the number of attributes 
     4385  on an object causes lattr() to exceed the buffer limit. 
     4386 
     4387  It is equivalent to extract(lattr(<object>[/<pattern>]),<start>,<count>) 
     4388 
     4389  xattrp() will include attributes from parents. Do note that parent 
     4390  attributes are listed _after_ child attributes, not sorted 
     4391  alphabetically. 
     4392 
     4393  See also: nattr(), lattr() 
    42914394& XGET() 
    42924395  xget(<object>, <attribute>) 
  • 1.7.7/game/txt/hlp/pennv177.hlp

    r467 r469  
    1 & 1.7.7p34 
     1& 1.7.7p35 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.7.7 patchlevel 35                     July 21, 2004 
     15 
     16Attributes: 
     17  * NO_NAME and NO_SPACE attribute flags, when applied to @o-message 
     18    attributes, omit either the enactor's name or the space after it 
     19    when sending the message to others. Patch by Walker@M*U*S*H. [3] 
     20Commands: 
     21  * @break <expression>=<new command> now runs <new command> 
     22    instead of simply stopping execution when <expression> is true. 
     23    New command @assert breaks and runs new command when <expression> 
     24    is false.  Suggested by Philip Mak and Zebranky@M*U*S*H. Patch by  
     25    Walker@M*U*S*H. 
     26  * The new command 'huh_command' is responsible for handling unmatched 
     27    command input. By default, it produces the usual Huh? message, but 
     28    it can be overridden with @hook. Logging of huhs is now controlled 
     29    in restrict.cnf and the log_huhs mush.cnf directive is removed. 
     30    Suggested by T'orA and Walker@M*U*S*H. 
     31  * New @decompile/prefix switch generalizes @decompile/tf. 
     32    Prefixes are now applied even when decompiling multiple attributes, 
     33    and a bug in doing so is corrected. Patch by Walker@M*U*S*H. 
     34  * New @edit/first switch only replaces first occurrence of string. 
     35    Suggested by Kevin@M*U*S*H. 
     36Functions: 
     37  * malias() function for examining mail aliases. Inspired by 
     38    Kevin@M*U*S*H. 
     39  * llocks()/locks() lists locks on an object. Patch by Walker@M*U*S*H. 
     40  * lset() function works like @lset. Patch by Walker@M*U*S*H. 
     41  * lockflags() and llockflags() show short and long flags set on a lock. 
     42    Patch by Walker@M*U*S*H. 
     43  * lattrp() is lattr() including parent attribs. Patch by Walker@M*U*S*H. 
     44  * nattr(obj/wildcardpattern) is now supported. Patch by Walker@M*U*S*H. 
     45  * nattrp() is nattr() including parent attribs. Patch by Walker@M*U*S*H. 
     46  * xattr(obj/wildcardpattern,start,count) extracts the corresponding 
     47    elements from lattr(). xattrp() is xattr() including parent attribs.  
     48    Patch by Walker@M*U*S*H. 
     49Minor changes (user-visible): 
     50  * @lset and lock() recognize locks beginning with user:. Patch by 
     51    Walker@M*U*S*H. 
     52  * When a player causes an ambiguous channel match, the error message 
     53    mentions CHAN_USEFIRSTMATCH, which now has a help entry. 
     54    Suggested by Luke@M*U*S*H. 
     55  * New sort options: sorting by dbref name, idle time, connection seconds,  
     56    creation time, owner dbref, and attribute values.  sort() and any  
     57    functions that use list2arr() are now ansi-aware. Patch by Walker@M*U*S*H. 
     58  * You can @name yourself to your @alias; this swaps name and alias. 
     59    Suggested by Oriens@Alexandria. Patch by Walker@M*U*S*H. 
     60Minor changes (internals): 
     61  * Several global variables are now encapsulated in a single structure 
     62    to reduce potential namespace clashes. 
     63  * Reorganization of some filecopy.c code. [SW] 
     64Fixes: 
     65  * @mail manipulation specifying folder 0 explicitly when the 
     66    current folder is non-zero didn't work right. Report by  
     67    Jess Hawthorne. 
     68  * Buffer overflow in string handling fixed. Report by Ashen-Shugar. 
     69  * @sitelock/name of an already locked name no longer creates extra 
     70    entries. Report by Nymeria@M*U*S*H. 
     71  * make depend no longer produces an unterminated Makefile.SH. 
     72    Reported by Bytor and Cheetah@M*U*S*H. 
     73  * Help fixes by [SW]. 
     74  * Fix to replace_string2 to prevent overflow situations. Report by 
     75    Atuarre. [SW]. 
     76  * Removed non-static shutdownsock prototype in hdrs/mysocket.h. 
     77    Report by Kholnuu@M*U*S*H. 
     78  * SQL code should be much more memory-efficient. [SW] 
     79  * Code cleanup and fixes to some memory leaks with strcoll. [SW] 
     80 
     81 
     82& 1.7.7p34 
    1483Version 1.7.7 patchlevel 34                     June 22, 2004 
    1584 
  • 1.7.7/game/txt/hlp/pennvOLD.hlp

    r467 r469  
    44194419 
    442044201.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
    4421        19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 
     4421       19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 
    442244221.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 
    442344231.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
  • 1.7.7/hdrs/attrib.h

    r467 r469  
    4242extern ATTR *atr_get(dbref thing, char const *atr); 
    4343extern ATTR *atr_get_noparent(dbref thing, char const *atr); 
    44 typedef int (*aig_func) (dbref, dbref, const char *, ATTR *, void *); 
     44typedef int (*aig_func) (dbref, dbref, dbref, const char *, ATTR *, void *); 
    4545extern int atr_iter_get(dbref player, dbref thing, char const *name, 
    4646            int mortal, aig_func func, void *args); 
    4747extern int atr_iter_get_parent(dbref player, dbref thing, char const *name, 
    48                    int mortal, aig_func func); 
     48                   int mortal, aig_func func, void *args); 
     49extern int atr_pattern_count(dbref player, dbref thing, const char *name, 
     50                 int doparent, int mortal); 
    4951extern ATTR *atr_complete_match(dbref player, char const *atr, dbref privs); 
    5052extern void atr_free(dbref thing); 
     
    99101#define AF_ANON         0x4000000   /* INTERNAL: Attribute doesn't really 
    100102                       exist in the database */ 
     103#define AF_NONAME       0x8000000   /* No name in did_it */ 
     104#define AF_NOSPACE      0x10000000  /* No space in did_it */ 
    101105 
    102106/* external predefined attributes. */ 
  • 1.7.7/hdrs/conf.h

    r463 r469  
    154154  char guest_file[2][256];  /**< Names of text and html guest files */ 
    155155  int log_commands; /**< Should we log all commands? */ 
    156   int log_huhs;     /**< Should we log commands that produce a Huh? */ 
    157156  int log_forces;   /**< Should we log force commands? */ 
    158157  int support_pueblo;   /**< Should the MUSH send Pueblo tags? */ 
     
    440439#define READ_REMOTE_DESC (options.read_remote_desc) 
    441440 
     441typedef struct globals_table GLOBALTAB; 
     442 
     443struct globals_table { 
     444  int database_loaded;         /**< True after the database has been read. */ 
     445  char dumpfile[200];         /**< File name to dump database to */ 
     446  time_t start_time;          /**< MUSH start time (since process exec'd) */ 
     447  time_t first_start_time;    /**< MUSH start time (since last shutdown) */ 
     448  time_t last_dump_time;      /**< Time of last successful db save */ 
     449  int reboot_count;       /**< Number of reboots so far */ 
     450  int paranoid_dump;          /**< if paranoid, scan before dumping */ 
     451  int paranoid_checkpt;       /**< write out an okay message every x objs */ 
     452  long indb_flags;        /**< flags set in the input database */ 
     453  int on_second;          /**< is it time for per-second processes? */ 
     454}; 
     455 
     456extern GLOBALTAB globals; 
     457 
    442458#endif              /* __CONF_H */ 
  • 1.7.7/hdrs/dbdefs.h

    r467 r469  
    1313#include "htab.h" 
    1414#include "chunk.h" 
    15  
    16 extern int depth; 
    1715 
    1816extern dbref first_free;    /* pointer to free list */ 
  • 1.7.7/hdrs/externs.h

    r467 r469  
    9797void dump_reboot_db(void); 
    9898void close_ssl_connections(void); 
     99int least_idle_time(dbref player); 
     100int least_idle_time_priv(dbref player); 
     101int most_conn_time(dbref player); 
     102int most_conn_time_priv(dbref player); 
    99103char *least_idle_ip(dbref player); 
    100104char *least_idle_hostname(dbref player); 
     
    165169  __attribute__ ((__format__(__printf__, 2, 3))); 
    166170 
     171/* From command.c */ 
     172void generic_command_failure(dbref player, dbref cause, char *string); 
     173 
    167174/* From compress.c */ 
    168175/* Define this to get some statistics on the attribute compression 
     
    185192 
    186193/* From cque.c */ 
    187 extern char *wenv[10], renv[NUMQ][BUFFER_LEN]; 
    188 extern char *wnxt[10], *rnxt[NUMQ]; 
    189 extern int process_command_port; 
     194struct eval_context { 
     195  char *wenv[10];         /**< working environment (%0-%9) */ 
     196  char renv[NUMQ][BUFFER_LEN];    /**< working registers q0-q9,qa-qz */ 
     197  char *wnxt[10];         /**< environment to shove into the queue */ 
     198  char *rnxt[NUMQ];       /**< registers to shove into the queue */ 
     199  int process_command_port;   /**< port number that a command came from */ 
     200  dbref cplr;             /**< initiating player */ 
     201  char ccom[BUFFER_LEN];      /**< raw command */ 
     202  int break_called;       /**< Has the break command been called? */ 
     203  char break_replace[BUFFER_LEN];  /**< What to replace the break with */ 
     204}; 
     205 
     206typedef struct eval_context EVAL_CONTEXT; 
     207extern EVAL_CONTEXT global_eval_context; 
     208 
    190209extern void do_second(void); 
    191210extern int do_top(int ncom); 
     
    526545#define local_wild_match(s,d) local_wild_match_case(s, d, 0) 
    527546 
    528     /** Types of lists, based on what their elements are */ 
    529     typedef enum list_type { 
    530       ALPHANUM_LIST, NUMERIC_LIST, DBREF_LIST, FLOAT_LIST, INSENS_ALPHANUM_LIST, 
    531       UNKNOWN_LIST 
    532     } list_type; 
     547/** Types of lists */ 
     548 
     549    extern char ALPHANUM_LIST[]; 
     550    extern char INSENS_ALPHANUM_LIST[]; 
     551    extern char DBREF_LIST[]; 
     552    extern char NUMERIC_LIST[]; 
     553    extern char FLOAT_LIST[]; 
     554    extern char DBREF_NAME_LIST[]; 
     555    extern char DBREF_NAMEI_LIST[]; 
     556    extern char DBREF_IDLE_LIST[]; 
     557    extern char DBREF_CONN_LIST[]; 
     558    extern char DBREF_CTIME_LIST[]; 
     559    extern char DBREF_OWNER_LIST[]; 
     560    extern char DBREF_LOCATION_LIST[]; 
     561    extern char DBREF_ATTR_LIST[]; 
     562    extern char DBREF_ATTRI_LIST[]; 
     563    extern char *UNKNOWN_LIST; 
     564 
    533565/* From function.c and other fun*.c */ 
    534566    extern char *strip_braces(char const *line); 
     
    541573      (char *buff, char **bp, int nfargs, char **fargs, int sep_arg, char *sep); 
    542574    extern int get_gender(dbref player); 
    543     extern int gencomp(char *a, char *b, list_type sort_type); 
     575    extern int gencomp(dbref player, char *a, char *b, char *sort_type); 
     576    extern const char *do_get_attrib(dbref executor, dbref thing, 
     577                     const char *aname); 
    544578 
    545579/* From destroy.c */ 
     
    563597    extern dbref db_write(FILE * f, int flag); 
    564598    extern dbref db_read(FILE * f); 
     599 
     600/* From filecopy.c */ 
     601    extern int rename_file(const char *origname, const char *newname); 
    565602 
    566603/* local.c */ 
     
    583620 
    584621/* funlist.c */ 
    585     void do_gensort(char *s[], int n, list_type sort_type); 
     622    void do_gensort(dbref player, char *s[], int n, char *sort_type); 
    586623 
    587624/* sig.c */ 
  • 1.7.7/hdrs/extmail.h

    r465 r469  
    1919#define M_REPLY         0x4000 
    2020#define M_FOLDER        0x8000  /* In mail selector, all msgs in cur folder */ 
    21 /* 0x4000 - 0x8000 available */ 
    2221 
    2322#define MAX_FOLDERS     15 
  • 1.7.7/hdrs/flags.h

    r467 r469  
    120120extern const char *power_to_string(int pwr); 
    121121extern void decompile_flags_generic(dbref player, dbref thing, const char *name, 
    122                     const char *ns, const char *command); 
    123 #define decompile_flags(p,t,n) decompile_flags_generic(p,t,n,"FLAG","@set") 
    124 #define decompile_powers(p,t,n) decompile_flags_generic(p,t,n,"POWER","@power") 
     122                    const char *ns, const char *command, 
     123                    const char *prefix); 
     124#define decompile_flags(p,t,n,r) decompile_flags_generic(p,t,n,"FLAG","@set",r) 
     125#define decompile_powers(p,t,n,r) decompile_flags_generic(p,t,n,"POWER","@power",r) 
    125126 
    126127#define twiddle_flag_bitmask(bm,b,neg) (neg ? clear_flag_bitmask(bm,b) : \ 
  • 1.7.7/hdrs/game.h

    r467 r469  
    7575extern void do_entrances(dbref player, const char *where, char **argv, 
    7676             enum ent_type val); 
    77 enum dec_type { DEC_NORMAL, DEC_DB, DEC_TF, DEC_FLAG, DEC_ATTR };