PennMUSH Community

root/1.8.3/tags/p6rc1/CHANGES.177

Revision 557, 70.7 kB (checked in by pennmush, 2 years ago)

PennMUSH 1.8.2p0 release candidate.

Line 
1 This is the changes file for PennMUSH 1.7.7. Please look it over; each
2 version contains new things which might significantly affect the
3 function of your server.  Changes are reported in reverse
4 chronological order (most recent first)
5
6 [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian)
7 [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek)
8 [SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos)
9 [EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar)
10 [LdW] is Luuk de Waard, a former PennMUSH developer (aka Halatir)
11 [RLM] is Ralph Melton, a former PennMUSH developer
12 [NJG] is Nick Gammon, the Win32 porter
13 [DW] is Dan Williams, the MacOS porter
14 [2.2] refers to code which originated with the TinyMUSH 2.2 developers
15 [3] refers to code by (or inspired by) TinyMUSH 3.0
16 [Rhost] refers to code by (or inspired by) RhostMUSH
17
18 ==========================================================================
19
20 Version 1.7.7 patchlevel 40                     December 1, 2004
21
22 Major Changes:
23   * Another pass at the chunk allocator! Simpler but effective.
24     Folks should, however, greatly reduce their chunk_migrate
25     value in mush.cnf -- we suggest '50'. [TAP]
26 Commands:
27   * @command/alias can alias commands. Patch by Walker@M*U*S*H.
28 Functions:
29   * zwho() and zmwho(). [EEH]
30 Minor Changes:
31   * utils/penn-install is no longer part of the PennMUSH distribution
32     (it's part of the Debian maintainer's stuff). [EEH]
33   * Inheritable @locks are inherited off of ancestor objects.
34     Suggested by Zith@Lovarii. [SW]
35 Fixes:
36   * Infinite recursion in @lock/examine fixed. Report by
37     Amy Kou'ai (Amy@ShoujoAi) and Sparta Kerleon (Sparta@ShoujoAi). [TAP]
38   * @flag/letter now allows setting a flag's letter to one used by
39     another flag that works on different object types. Report by Lenon.
40   * Translation corrections by Cheetah@M*U*S*H and [EEH].
41   * Added __USE_POSIX to the cflags for linux, and removed
42     checking for -lbind, to help SuSE 9.  Report by Ambrosia@M*U*S*H.
43   * Fixes to panic db loading logic. [SW]
44   * escape() shouldn't double-escape the first character of the
45     string when it's a special character. Report by Walker@M*U*S*H.
46
47
48 Version 1.7.7 patchlevel 39                     October 25, 2004
49
50 Major Changes:
51   * Game and chat database formats have been rewritten. They are
52     much more human-readable, can be extended with new fields
53     without using versioning flags, and provide better detection
54     and reporting of malformed databases. [SW]
55   * Chunk deref counts for locks are now stored in the database. [SW]
56 Commands:
57   * New 'buy' command for purchasing items from vendors that can offer
58     multiple items at multiple prices. Patch by Walker@M*U*S*H.
59   * restrict_command and @command/restrict can now include an
60     error message to be sent when the player can't use the command,
61     which supercedes more generic errors. Suggested by Philip Mak.
62     Patch by Walker@M*U*S*H.
63 Functions:
64   * lwho() can take an argument to produce the who list from that
65     player's viewpoint. Patch by Walker@M*U*S*H.
66 Fixes:
67   * nattr(obj/attrib) returns 1 when matching a non-wildcarded attrib.
68     Report by Impster@M*U*S*H.
69   * +chan <msg> is now converted to @chat <chan>=<msg> (with noeval)
70     so @chat hooks apply to +chatting too. Patch by Walker@M*U*S*H.
71   * You must be able to locate a player to perform elock() on them.
72     Report by Ambrosia.
73   * Help fixes by Sketch@M*U*S*H.
74   * Simplification of @version code. [SW]
75   * cemit() restrictions are now based on those of @cemit, instead
76     of @emit. Report by BlackPhyr.
77   * Setting queue_loss to 0 disables queue_loss. A bad idea, but
78     more consistent behavior. Suggested by K Moon.
79   * Examining objects always shows their actual number of coins,
80     whether or not they're admin or no_pay.
81   * Code cleanup in @edit and in char routines. [SW].
82   * Wrong object checked when reporting money as unlimited. Report
83     by Nate Barney. [EEH]
84   * New hints/freebsd_5.sh. Suggested by James Lang.
85   * INFO command once again reports the server as "PennMUSH",
86     not just a version number. Report by Mark Hassman.
87   * Win32 linting. Builds with NT_TCP should work again (although
88     @shutdown/reboot under NT_TCP is still not functional).
89     Reorganization of the Win32 services macros. [EEH]
90   * Fix to bug with login attempts using literal encrypted strings.
91     Reported by Cadar and Mirrador.
92   * @ps/all shows the right label on top. Patch by qa'toq@bDv.
93
94
95 Version 1.7.7 patchlevel 38                     August 25, 2004
96
97 Commands:
98   * @boot/silent disconnects without the standard message.
99     Suggested by Thor@bDv.
100 Fixes:
101   * Crash bug in is_objid fixed. Report by Wayne@PDX.
102   * God could cause a flag to lose its type status, and then become
103     inaccessible. Report by Wayne@PDX.
104
105
106 Version 1.7.7 patchlevel 37                     August 23, 2004
107
108 Major changes:
109   * @adisconnect is triggered on every disconnection, partial or full.
110     This mirrors the behavior of @aconnect. Use %1 (the number of
111     remaining connections) to distinguish between partial and full
112     disconnects in @adisconnect code.
113 Minor changes (user-visible):
114   * When a player disconnects, their recv(), sent(), and cmds()
115     values are passed to triggered @adisconnects as %2, %3, and %4.
116     The number of remaining connections is passed as %1.
117     Suggested by Jessica Hawthorne and Wayne@PDX.
118   * No_Pay players now have their money reported as unlimited by
119     examine and score (but money() still returns a useful integer value).
120     ex/debug can be used to see the object's Pennies field.
121     Suggested by Wayne@PDX.
122 Fixes:
123   * ex obj/*1 and similar was matching like ex obj/*1*. Reported by
124     Math@HavenMUSH.
125   * inc() and dec() with out-of-range integers now return a more
126     useful error instead of odd behavior. Suggested by Jessica Hawthorne.
127   * Win32 bug with renamed temporary database files resolved.
128     Reported by AndromedaMU.
129   * Help fixes by Mike Griffiths.
130   * @mail commands with no message list were not using current folder.
131     Report by Jessica Hawthorne.
132
133 Version 1.7.7 patchlevel 36                     August 9, 2004
134
135 Functions:
136   * l/lv/n/nv/x/xvthings() functions by Walker@M*U*S*H.
137   * New flag to locate(), 'y', for matching player names like pmatch(),
138     without requiring a leading * before the name like the 'p' flag. [SW]
139   * lattr()/nattr() works for mortals on non-owned objects, showing
140     or counting only attribs they can examine. Suggested by Philip Mak,
141     patch by Walker@M*U*S*H.
142 Minor changes (user-visible):
143   * Mortals can no longer teleport HEAVY admin through exits.
144     Suggested by Ambrosia@M*U*S*H.
145 Minor changes (internals):
146   * win32 directory has subdirectories for msvc6 and msvc.net. [EEH]
147   * locate() on dark rooms now works for see_all players. Suggested
148     by Wayne@PDX.
149 Fixes:
150   * @mail subjects are stripped of ansi before being stored (escape
151     chars were always smashed on display). Suggested by Wayne@PDX.
152   * @command/delete by God of a non-existing command caused a crash.
153     Report by Wayne@PDX.
154   * Follow works again. Report by Shirow.
155   * Fix to digest()'s sha hash on systems without OpenSSL. [SW]
156   * @list/command no longer includes duplicates. Report by Relay@M*U*S*H. [EEH]
157   * comp() again returns -1/1 instead of -2/2. Report by Jessica Hawthorne.
158   * sort() of large floats works again. Report by Jessica Hawthorne.
159   * Linting of warnings in funlist.c. Report by Nymeria@M*U*S*H.
160   * It was possible for wizards to create circular zone chains that
161     would cause an infinite loop. Report by Wayne@PDX.
162   * safe_ansi_string was double-prepending starting ansi codes.
163     Report by Shirow.
164   * Debian packaging improvements. [EEH]
165   * Help fixes by Mike Griffiths.
166
167
168 Version 1.7.7 patchlevel 35                     July 21, 2004
169
170 Attributes:
171   * NO_NAME and NO_SPACE attribute flags, when applied to @o-message
172     attributes, omit either the enactor's name or the space after it
173     when sending the message to others. Patch by Walker@M*U*S*H. [3]
174 Commands:
175   * @break <expression>=<new command> now runs <new command>
176     instead of simply stopping execution when <expression> is true.
177     New command @assert breaks and runs new command when <expression>
178     is false.  Suggested by Philip Mak and Zebranky@M*U*S*H. Patch by
179     Walker@M*U*S*H.
180   * The new command 'huh_command' is responsible for handling unmatched
181     command input. By default, it produces the usual Huh? message, but
182     it can be overridden with @hook. Logging of huhs is now controlled
183     in restrict.cnf and the log_huhs mush.cnf directive is removed.
184     Suggested by T'orA and Walker@M*U*S*H.
185   * New @decompile/prefix switch generalizes @decompile/tf.
186     Prefixes are now applied even when decompiling multiple attributes,
187     and a bug in doing so is corrected. Patch by Walker@M*U*S*H.
188   * New @edit/first switch only replaces first occurrence of string.
189     Suggested by Kevin@M*U*S*H.
190 Functions:
191   * malias() function for examining mail aliases. Inspired by
192     Kevin@M*U*S*H.
193   * llocks()/locks() lists locks on an object. Patch by Walker@M*U*S*H.
194   * lset() function works like @lset. Patch by Walker@M*U*S*H.
195   * lockflags() and llockflags() show short and long flags set on a lock.
196     Patch by Walker@M*U*S*H.
197   * lattrp() is lattr() including parent attribs. Patch by Walker@M*U*S*H.
198   * nattr(obj/wildcardpattern) is now supported. Patch by Walker@M*U*S*H.
199   * nattrp() is nattr() including parent attribs. Patch by Walker@M*U*S*H.
200   * xattr(obj/wildcardpattern,start,count) extracts the corresponding
201     elements from lattr(). xattrp() is xattr() including parent attribs.
202     Patch by Walker@M*U*S*H.
203 Minor changes (user-visible):
204   * @lset and lock() recognize locks beginning with user:. Patch by
205     Walker@M*U*S*H.
206   * When a player causes an ambiguous channel match, the error message
207     mentions CHAN_USEFIRSTMATCH, which now has a help entry.
208     Suggested by Luke@M*U*S*H.
209   * New sort options: sorting by dbref name, idle time, connection seconds,
210     creation time, owner dbref, and attribute values.  sort() and any
211     functions that use list2arr() are now ansi-aware. Patch by Walker@M*U*S*H.
212   * You can @name yourself to your @alias; this swaps name and alias.
213     Suggested by Oriens@Alexandria. Patch by Walker@M*U*S*H.
214 Minor changes (internals):
215   * Several global variables are now encapsulated in a single structure
216     to reduce potential namespace clashes.
217   * Reorganization of some filecopy.c code. [SW]
218 Fixes:
219   * @mail manipulation specifying folder 0 explicitly when the
220     current folder is non-zero didn't work right. Report by
221     Jess Hawthorne.
222   * Buffer overflow in string handling fixed. Report by Ashen-Shugar.
223   * @sitelock/name of an already locked name no longer creates extra
224     entries. Report by Nymeria@M*U*S*H.
225   * make depend no longer produces an unterminated Makefile.SH.
226     Reported by Bytor and Cheetah@M*U*S*H.
227   * Help fixes by [SW].
228   * Fix to replace_string2 to prevent overflow situations. Report by
229     Atuarre. [SW].
230   * Removed non-static shutdownsock prototype in hdrs/mysocket.h.
231     Report by Kholnuu@M*U*S*H.
232   * SQL code should be much more memory-efficient. [SW]
233   * Code cleanup and fixes to some memory leaks with strcoll. [SW]
234
235
236 Version 1.7.7 patchlevel 34                     June 22, 2004
237
238 Flags and Powers:
239   * Debit power allows the giving of negative amounts of money.
240     Suggested by Hemlon@SevenStones.
241   * The setting and resetting of flags and powers can be logged
242     by using the new 'log' restriction. Changes were made in
243     flaglocal.dst which you must carry over into flaglocal.c
244     (or, if you don't use flaglocal.c, just rm src/flaglocal.c and
245     flaglocal.dst will be copied in its place). Suggested by Sholevi@M*U*S*H
246     [SW]
247   * Setting and resetting @powers are once again logged by default. [SW]
248 Locks:
249   * @lock/speech can now be set by unprivileged players. @lock/speech
250     now applies to all players (it is no longer automatically overridden
251     by admin). SPEECH_LOCK`*FAILURE attributes can be used to override
252     the default failure messages when @lock/speech fails.
253 Commands:
254   * ex/parent examines an object and shows attributes that will be
255     inherited from its parents (if you are permitted to examine
256     the parent as well). Suggested by BladedThoth@M*U*S*H.
257   * examine now shows the complete (examinable-by-enactor) chain of
258     parent objects, not just the nearest parent. Suggested by Luke@M*U*S*H.
259 Functions:
260   * mailsend() is a function form of @mail/send. Suggested by Moe@ChicagoMUSH
261   * ncon, nvcon, nexits, nvexits, nplayers, nvplayers, nwho, nvwho
262     functions to count the number of each thing. Patch by Walker@M*U*S*H.
263   * xcon, xvcon, xexits, xvexits, xplayers, xvplayers, xwho, xvwho functions
264     to extract slices of potentially long contents, etc. lists. [Rhost,TM]
265     Patch by Walker@M*U*S*H.
266 Minor changes (user-visible):
267   * Players can no longer be set CHOWN_OK. Suggested by Intrevis@M*U*S*H.
268     If you have existing CHOWN_OK players, you probably want to unset
269     this from them, or the results will be confusing (they'll continue
270     to appear to have the flag, even though it won't be testable or
271     settable or clearable; this is desired behavior).
272   * If you're See_All and Pemit_All, you may now @cemit on any channel.
273     Based on a suggestion by Philip Mak.
274   * Attempting to give a player more than max_pennies will give them
275     enough to get them to max_pennies, instead of being treated as
276     an error. Similarly, taking away more pennies than they have will
277     take away exactly all their pennies.
278   * Improved errors for unprivileged users doing @boot/port.
279     Suggested by Intrevis@M*U*S*H. [TAP]
280 Minor changes (internals):
281   * pre OS X Macintosh OSes are no longer supported. Hints for
282     Darwin are improved. [SW]
283   * An extra file descriptor only needed on Sun OS boxes was being
284     opened on all unix systems. [SW]
285   * If no config file name is given on the netmush program's command line,
286     it will assume you mean mush.cnf instead of quitting. You should still
287     be using the restart script instead of netmush directly, though, as it
288     does important things like using the right database... [SW]
289   * 'make local-files' will copy all the src/*local.dst files to their
290     respective .c counterparts. Suggested by Nymeria@M*U*S*H. [SW]
291 Fixes:
292   * Configure handles the case where SO_KEEPALIVE works but TCP_KEEPIDLE isn't
293     defined. [SW]
294   * Win32 portability fixes and mingw hints. [EEH]
295   * Raising max_logins from 0 with @config/set wouldn't take existing
296     connections into account. [SW]
297   * $commands starting with # (that don't look like an @force by dbref)
298     will now be matched. Reported by Intrevis@M*U*S*H.
299   * version() is verbose again. Reported by Sholevi@M*U*S*H.
300   * The double-add of SQL_OK on minimal.db is now really fixed.
301     See p33 changes for information. Report by Mordie@M*U*S*H.
302   * Help fixes by Kevin@M*U*S*H and Cerekk@bDv.
303   * @boot/desc on one's own descriptor is no longer translated to
304     @boot/me. [TAP]
305   * Overflow of integer argument in giving pennies fixed. Report by
306     Sholevi@M*U*S*H.
307   * Typo in fun_vcross() fixed. [SW]
308   * Configure does better when ssl shared libraries, but not static
309     libraries, are available. You can use -D no_openssl to skip SSL checks.
310
311
312 Version 1.7.7 patchlevel 33                     June 3, 2004
313
314 Minor changes (internals):
315   * IsPlayer, etc. macros rewritten for clarity by Luke@M*U*S*H.
316   * Use enums in place of some more #defines and magic numbers. [SW]
317   * New did_it_with() hc function simplifies passing a dbref as %0
318     to did_it actions. [SW]
319 Fixes:
320   * The SQL_OK power could get double-added. If this happened to you,
321     delete one of them and double-check that all sql-using objects
322     still have the power set. Report by Mordie@M*U*S*H.
323   * Missing include in game.c fixed.
324   * Improper include in bufferq.c fixed. Report by Leona and Walker@M*U*S*H.
325   * Obsolete bzero() uses removed. [SW]
326   * New win32/pennmush.dsp.
327   * Help fix by bleeder@M*U*S*H.
328   * Mac OS X linting [SW].
329
330
331 Version 1.7.7 patchlevel 32                     May 26, 2004
332
333 Major Changes:
334   * SQL support. PennMUSH can now operate as an SQL client and perform
335     queries against an SQL server. Currently only the MySQL server is
336     supported. This adds the @sql command, the sql() and sqlescape()
337     functions, and the Sql_Ok power. See README.SQL for some
338     additional information.  Mostly based on patches by Hans Engelen.
339   * Creating a leaf attribute automatically creates associated branch
340     attributes if they are not already present. [TAP]
341   * When a $command matches on an object, but the object's use-lock or
342     command-lock prevents the command from being run, the object's
343     COMMAND_LOCK`FAILURE, COMMAND_LOCK`OFAILURE, and COMMAND_LOCK`AFAILURE
344     attributes will be triggered if the $command never successfully
345     matched, rather than returning a Huh? to the player.
346   * Exits and rooms may now run $commands. Rooms are treated as being
347     located in themselves for purposes of location checks. Exits are
348     treated as being located in their source room. Suggested by [TAP].
349 Commands:
350   * 'empty <object>' attempts to get each item in <object> and put
351     it alongside <object> (in <object>'s location).
352   * 'give <object> to <player>' syntax added.
353 Minor Changes (user-visible):
354   * @COST attribute is now evaluated, so you can make costs depend
355     on who's paying, a selected item, etc. Suggested by Walker@M*U*S*H.
356     Also, the amount given is passed in as %0, so you can code
357     vendors that accept any amount.
358   * New OBJID^<objid> lock atom.
359   * The server now maintains a rolling log of activity (commands issued,
360     evaluations parsed, and locks evaluated), that is dumped to the log
361     file on panic, or can be seen by God with @uptime. This aids
362     debugging code that causes a "clean" panic rather than a crash.
363     Suggested by Intrevis@M*U*S*H.
364   * When checking a use/command/listen-lock on an object with patterns
365     that get matched, we only check the lock once and cache the result,
366     to prevent multiple lock evaluations if multiple patterns match. [TAP]
367   * @chan/recall now shows nospoof tags for @cemit'd lines.
368     Suggested by Sholevi@M*U*S*H.
369   * SUSPECT flag can now be applied to any type of object.
370     Suggested by Oriens@Alexandria.
371 Minor Changes (internals):
372   * fun_escape() and fun_secure() use the same list of special characters,
373     rather than each having their own copy. [SW]
374   * Buffer queue code used by @chan/buffer and the activity log refactored
375     into src/bufferq.c and hdrs/bufferq.h.
376   * Added mush_panicf(), with printf()-style format and arguments. [SW]
377 Fixes:
378   * @scan correctly shows attributes on parents again. Report by
379     Wayne@PDX.
380   * @shutdown/panic and @shutdown/paranoid work again. [SW]
381   * A panic DB could be created before the database files were actually read,
382     causing problems on the next restart. [SW]
383   * Win32 and Debian installer portability fixes. [EEH]
384   * Code cleanup around errno. [SW]
385   * The locate() function now respects visibility and interactions.
386     Report by Jules@M*U*S*H.
387
388
389 Version 1.7.7 patchlevel 31                     May 11, 2004
390
391 Minor Changes:
392   * netmush is now started with only a single argument - the path to
393     the configuration file. The error log file (typically game/netmush.log)
394     is now configured in mush.cnf. Suggested by Vadiv@M*U*S*H.
395   * The restart script now bases its decision about whether the mush
396     is already running on the full path to the configuration file,
397     which means you can leave mush.cnf named mush.cnf without fear
398     of restart problems when multiple mushes are using the same
399     host. This also facilitates make update. Suggested by Vadiv@M*U*S*H.
400   * The GAMEDIR environment variable can be passed to 'make update'
401     to cause it to update *.cnf files in directories other than
402     game/ (using the template *.dst files in game/).
403     E.g.: make GAMEDIR=/home/othermush/game update
404 Commands:
405   * @nscemit. Suggested by Mystery8@ST:AW.
406 Functions:
407   * nscemit(). Suggested by Mystery8@ST:AW.
408 Flags:
409   * New HEAVY admin flag, prevents an object from being teleported
410     by a mortal between two containers they own. Admin without this
411     flag can now be teleported.
412 Fixes:
413   * Help fixes by Anri@AkaneaMUSH and Intrevis@M*U*S*H.
414   * mix() now treats empty lists as empty, instead of containing a single
415     null element. Report by Luke@M*U*S*H.
416   * @power messages no longer reference 'flags'. Report by Nymeria@M*U*S*H.
417   * Crash bug with @clone in new power system fixed.
418
419
420 Version 1.7.7 patchlevel 30                     May 6, 2004
421
422 Major changes:
423   * CHAT_SYSTEM option removed. If you don't want to use the chat system,
424     use restrict.cnf to disable @channel, @chat, etc.
425   * USE_MAILER and MAIL_ALIAS options removed. If you don't want to
426     use the @mail or @malias systems, use restrict.cnf to disable
427     the associated commands.
428   * QUOTA, EMPTY_ATTRS, and FUNCTION_SIDE_EFFECTS options are now
429     runtime options, instead of compile-time.
430   * SINGLE_LOGFILE option removed, and log filenames are now
431     runtime options. You may now give the same name to
432     multiple log files and get a more fine-grained version of the
433     same effect. Based on ideas by Vadiv@M*U*S*H.
434 Minor changes:
435   * New IP^ and HOSTNAME^ tests for boolexps. Suggested by Luke@M*U*S*H.
436   * ALLOW_NOSUBJECT option removed. We always use the beginning of the
437     message as the subject if one is not provided.
438   * JURY_OK and UNINSPECTED_FLAG options removed. Use @flag to add
439     flags if you need them. ONLINE_REG and VACATION_FLAG options
440     removed (default to always defined, add or remove with @flag as
441     desired).
442   * MEM_CHECK option removed from options.h; it is now a runtime
443     option in mush.cnf.
444   * @function/restrict can be applied to softcoded @functions, and
445     @function/add can accept a list of restrictions as a fifth argument.
446     Patch by Luke@M*U*S*H.
447   * log_walls run-time configuration option removed. Use the
448     logargs option in restrict.cnf instead.
449 Fixes:
450   * Crash bug in anonymous attributes fixed. Report by Intrevis@M*U*S*H.
451   * lplayers() was broken. Report by T'orA@M*U*S*H.
452   * Failing to create a player by providing a bad password now gives
453     a better error. Suggested by [NJG].
454   * Setting/clearing a chan title on a notitles channel works, but
455     reminds you that titles are off. Suggested by Dan@InNomine.
456   * haspower_restricted removed from mushcnf.dst to stop spurious
457     warning on startup. Report by Nymeria@M*U*S*H.
458
459
460 Version 1.7.7 patchlevel 29                     April 28, 2004
461
462 Major changes:
463   * Anonymous attributes via #lambda. See help anonymous attributes. [SW]
464   * Wizards (other than God) and royalty are no longer treated as No_Pay
465     unless the No_Pay power is explicitly set on them, although they
466     can still give (themselves or others) as many pennies as they wish.
467     This helps stop runaway wizards in the queue (they'll run out of cash
468     like anyone else). To get the old behavior back, @power your admin
469     No_Pay. You probably want to @power any globals that use search(),
470     children(), mail*stats(), etc, No_Pay as well. Suggested by Walker@M*U*S*H.
471   * game/restrict.cnf, alias.cnf, names.cnf are renamed in the tarball and
472     made with make update like mush.cnf. Suggested by Philip Mak. [SW]
473   * @powers now operate under the same code as the @flag system, so God
474     can add and modify powers in the MUSH with @power/add, etc.
475 Commands:
476   * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms
477     of the same. Suggested by Cloud@M*U*S*H.
478 Functions:
479   * andlpowers(), orlpowers(), andpowers(), orpowers().
480   * align() performs fancy text alignment tricks. Patch by Walker@M*U*S*H.
481   * sent() and recv() show more player descriptor data from SESSION.
482     Suggested by Ricochet@M*U*S*H.
483   * scan() with a single argument assumes the executor's point of
484     view. Suggested by Cheetah@M*U*S*H.
485   * valid() can also check for syntactically correct passwords,
486     command names, and function names.
487 Minor changes:
488   * No more CRYPT_SYSTEM in options.h. We try everything and we
489     always reset passwords to SHS. Patch by Vadiv@M*U*S*H.
490   * Wizards and other privileged players can @chan/recall on channels they're
491     not on. Suggested by Trispis@M*U*S*H. [SW]
492   * A separate ip address to bind the SSL port to can now be specified
493     in mush.cnf.
494   * @flag/type allows God to change flag types. Suggested by Renee@ShoreSide.
495   * After each @startup is enqueued (during startup or @restart/all),
496     we immediately run up to 5 queue cycles. This allows, e.g., God's
497     @startup to up to five levels of @dol/@tr/@switch/etc and still have
498     the queued code run ahead of other startups. This requires that you
499     keep God's dbref as #1. Based on comments by Philip Mak and o
500     Trispis@M*U*S*H.
501   * The message after successful @password is now clearer, to avoid
502     confusion in some unusual cases. Report by Kholnuu.
503   * Makefile is no longer set executable. Report by Luke@M*U*S*H.
504   * Server now handles telnet NOP and AYT commands. Suggested by
505     Philip Mak and Liz (author of Muckclient).
506   * announce.c is no longer distributed. portmsg.c cleanup.
507 Fixes:
508   * @undestroy on an invalid (garbage, or !going) object now produces
509     an error message. Suggested by T'orA@M*U*S*H.
510   * On shutdowns, all queue deposits are now refunded.
511   * Ansi behavior on second and later lines of text fixed by Walker@M*U*S*H.
512   * Database reading improvements for win32 - ideally, you should now
513     be able to read a database written on win32/unix on either system.
514   * allof() now evaluates its separator argument. [SW]
515   * firstof() doesn't add an extra space before the value it returns. [SW]
516   * Slackware portability fixes by Dale @ Wolfpaw.net hosting
517   * ]page properly noevals (the right hand side) now. Report by
518     Cheetah@M*U*S*H.
519   * Partial channel match listings no longer reveal channels the player
520     isn't allowed to see. Report by Taz.
521   * Help fixes by Trispis@M*U*S*H and Tanaku@M*U*S*H.
522   * ssl() and terminfo() don't work on other players unless you're
523     See_All, as promised. Based on patch by Tanaku@M*U*S*H.
524   * lcon, etc. all do an INTERACT_SEE interaction check now.
525     Suggested by Thor@bDv.
526   * Code cleanup. [SW]
527   * Fixes from 1.7.6p16
528
529
530 Version 1.7.7 patchlevel 28                     March 12, 2004
531
532 Major changes:
533   * You can add customized configuration parameters to set in mush.cnf
534     by adding a couple of new lines into the local_configs() function
535     in local.c. (YOU MUST UPDATE YOUR local.c FROM local.dst IN THIS
536     PATCHLEVEL). Patch by grapenut@M*U*S*H.
537   * Object ids: An object id is the string "#dbref:ctime"
538     where #dbref is the object's dbref and ctime is its creation time
539     in integer format. The %: substitution returns this
540     id for the enactor, and the objid() function returns it for an
541     arbitrary object. Object ids can be used in place of softcode that
542     stores dbrefs to insure that a recycled dbref isn't used in place
543     of the intended one. The matcher code will also match objects by
544     id any time it's matching by dbref.
545   * @command/add and @command/del. You can add a custom command
546     (which will have the same precedence as a standard server command),
547     and then @hook it to softcode, effectively promoting the precedence
548     of softcoded globals, and letting them take advantage of some
549     command parser settings. Patch by Walker@M*U*S*H.
550 Functions:
551   * tr() accepts ranges of characters like a-z instead of having to
552     give each one. [SW]
553   * escape() also escapes parens and commas now. Suggested by Philip Mak. [SW]
554   * time() can now take a time offset or object argument (in the latter
555     case, time offset is read from object's TZ attribute). Patch by
556     Walker@M*U*S*H.
557   * vcross() performs cross products of vectors. [SW]
558   * merge() can now take a list of characters. [SW]
559 Minor changes:
560   * You can @set multiple flags at once by giving them as a list.
561     Suggested by Walker@M*U*S*H and others.
562   * Channel names are recognized when surround by <>'s, too. [SW]
563   * 'move' is now a command_alias for 'goto' (in alias.cnf), and not
564     a separate command.
565   * PAGE_LOCK`{,O,A}FAILURE attributes now activated when a page/pemit fails
566     due to the victim's @lock/page. Suggested by Sholevi@M*U*S*H.
567   * Tweaked game message for failing to provide correct password to
568     @password. Suggested by Philip Mak.
569   * New command 'warn_on_missing' (defaults to disabled), aliased to the
570     '[' character. If enabled, players who attempt to write commands
571     starting with functions will get errors. Suggested by [SW] and
572     Cheetah@M*U*S*H.
573   * Renaming something triggers its ONAME and ANAME attributes, if present.
574     The old name is passed as %0; the new as %1. Suggested by Philip Mak.
575   * Owner information on ex/br is reported using the usual object_header()
576     so dbref and flags appear. Suggested by Eratl@M*U*S*H.
577   * Flags that are F_DARK or F_MDARK no longer appear on @flag/list
578     by non-admin. Suggested by Philip Mak.
579   * Warn players who set themselves SHARED with a weak zone lock.
580     Suggested by Philip Mak. [SW]
581   * @halt can now take "here". Suggested by Thor@bDv.
582   * When parsing eqsplit commands, don't evaluate the left side
583     of the equal sign if the command was run with ].
584 Fixes:
585   * Fixes to robustify file reading on Windows systems.
586   * The 'nofixed' command restriction works as expected now (previously,
587     you had to use 'nofix').
588   * Exit movements are now translated into explicit GOTO commands,
589     so @hooks and restrictions on GOTO are now applied. Patch by
590     Walker@M*U*S*H.
591   * The AE/ae accent characters can now be produced (accent(a,e)).
592     Patch by Luke@M*U*S*H.
593   * @hook/ignore would double-evaluate arguments. Reported by
594     Ambrosia@M*U*S*H. [SW]
595   * Mingw error in src/Makefile.SH fixed. Report by Thor@bDv. [SW]
596   * Help fixes by Cerekk@bDv, Mike Griffiths, Steve Varley, Thor@bDv, [SW],
597     Dahan, Jason Stover, and Kyieren@M*U*S*H.
598   * cmdlocal.dst now includes flags.h. By Dahan.
599   * Win32 portability fixes by Dahan, Nathan Baum, [EEH].
600   * utils/mkcmds.sh is now smarter about choosing temp filenames, so
601     parallel make should work. Fixed by Cheetah@M*U*S*H.
602   * The Zone: data in examine could be wrong.
603
604
605 Version 1.7.7 patchlevel 27                     January 25, 2004
606
607 Minor Changes:
608   * New etimefmt() formatting codes to make it easier to get nice-looking
609     results without 0-valued times. Suggested by ranko_usa@M*U*S*H. [SW]
610   * Autodetect existence of /usr/kerberos/include to make compile
611     easier for RH9 sufferers.
612   * src/Makefile is now autobuilt from src/Makefile.SH. IF you use
613     local hacks that require src/Makefile, this is likely to be a problem
614     for you. You'll want to start patching Makefile.SH instead.
615   * Fewer warning flags are now provided to the compiler by default.
616     You can set your own warning flags instead by defining the
617     warnings variable in config.over.
618 Fixes:
619   * The startups option actually does what it's supposed to now.
620   * Potential DOS in etimefmt fixed. Report by Ashen-Shugar. [SW]
621   * Code cleanup. ok_tag_attribute should work. [SW]
622   * Channels are automatically ungagged only on initial connection
623     (not reconnection, partial disconnection, etc.). Suggested by
624     Mordie@M*U*S*H.
625   * notify() calls during startup would crash. Reported by Mordie@M*U*S*H. [SW]
626   * Fixes from 1.7.6p15.
627
628
629 Version 1.7.7 patchlevel 26                     December 15, 2003
630
631 Commands:
632   * Add /regexp switch to @switch and @select. Suggested by BladedThoth. [SW]
633   * New /spoof switch to @pemit, @remit, @lemit, @oemit, @emit,
634     causes the message to appear to be generated by the cause, rather
635     than the enactor, which makes globals like $ooc show the right
636     NOSPOOF information (instead of the name of the global command object).
637     Patch by Philip Mak.
638 Functions:
639   * hostname(), ipaddr(), and cmds() take a dbref or descriptor number
640     of a connected player and return the hostname, ipaddr, and number
641     of commands executed. Suggested by Sholevi@M*U*S*H and Renee@ShoreSide,
642     code by Sholevi@M*U*S*H.
643   * Add reswitch*() functions. Suggested by BladedThoth. [SW]
644   * insert() can take a negative position argument to insert from
645     the right. Patch by Sholevi@M*U*S*H.
646   * New firstof() and allof() functions return the first true value
647     or all true values from a set of expressions. Patch by Sholevi@M*U*S*H.
648   * tr() works like the Unix utility, translating characters. Patch
649     by Walker@M*U*S*H.
650 Attributes:
651   * Attributes may be set DEBUG to cause their evaluation to be
652     debugged selectively. Patch by Pozzo@SWForum.
653   * @desc can no longer be gotten remotely without privileges.
654     To implement this, a new attribute flag NEARBY was added,
655     which prevents visual attributes from being remotely accessed.
656     See new configuration directive 'read_remote_desc' if you prefer
657     the old behavior. Patch by Philip Mak.
658   * @desc on privileged objects can now be evaluated by mortals.
659     To implement this, a new attribute flag PUBLIC was added,
660     which overrides safer_ufun for that attribute. This flag is dangerous
661     and should be avoided unless you are sure you know what you're doing.
662     Patch by Philip Mak.
663 Minor Changes:
664   * "+<channel> <text>" complains if <channel> is ambiguous, and
665     displays a list of matching channels. Patch by Luke@M*U*S*H.
666   * Code cleanup around @oemit by Philip Mak.
667   * If an object has an IDESCFORMAT but no IDESCRIBE, interior viewers
668     now see the DESCRIBE formatted by IDESCFORMAT (instead of
669     the DESCRIBE formatted by DESCFORMAT). Suggested by Philip Mak.
670   * Ported to Win32 with the Mingw development environment.
671     See win32/README.mingw for compile instructions. [EEH]
672   * null() can now take any number of arguments. Patch by Walker@M*U*S*H.
673   * Using @chan/quiet to control the quiet flag on a channel no longer works
674     (Actually, it never did). Use @chan/priv instead. [SW]
675   * The NO_WARN flag now prevents disconnected room warnings, too.
676     Suggested by several people. Patch by Philip Mak.
677   * @sitelock/name !name still unlocks a reserved name, but no longer
678     removes that name from names.cnf. Suggested by Nymeria. [SW]
679   * Some cleanup of fopen() calls. [SW]
680   * The reference to channel Creator is now Owner in @chan/decomp.
681     Suggested by Howie@NFTrekMUSH. [SW]
682   * The name of the channel being tested is passed as %0 in channel locks.
683     Suggested by Philip Mak. [SW]
684   * help for @chownall mentions the /preserve switch.  Warnings from @chown
685     and @chownall tell which objects they're for. Suggested by
686     Mordie@M*U*S*H. [SW]
687   * Home wrecking is allowed again. Suggested by Philip Mak.
688 Fixes:
689   * Puppets in containers with @listen container=* now hear the
690     outside world correctly. Patch by Philip Mak.
691   * The email sent on player registration now double-quotes the
692     player name in the example connect statement. Suggested by
693     David Kali.
694   * Two rooms should never be nearby() each other. Fix by Philip Mak.
695   * can_look_at() now handles the look/out case, too. Fix by Philip Mak.
696   * Help fixes by Viila@M*U*S*H, MetBoy@M*U*S*H, Cheetah@M*U*S*H.
697   * @flag/alias or @flag/add without giving an alias no longer crashes
698     the MUSH.  Report by Wildfire.
699   * Correctly retrieve user full name from /etc/passwd fields under
700     Linux in Configure. Record it in config.sh. Reported by Vadiv@M*U*S*H.
701   * Debian package changes. [EEH]
702   * As the help promises, XCH_CMD and SEND attributes don't work
703     for non-Wizards. Really.
704
705
706 Version 1.7.7 patchlevel 25                     October 30, 2003
707
708 Fixes:
709   * Crash bug in the interaction between parents and attr trees
710     fixed. Report by Walker@M*U*S*H.
711   * Improvements to how locks are decompiled. Built-in locks with the
712     no_inherit flag cleared are handled better.  If the object doing
713     the @decompile is referenced in a lock key, it's decompiled as 'me'
714     rather than by dbref, to make it easier to port between games.
715     Report by Cerekk@bDv. [SW]
716   * The error typically logged by info_slave on a mush crash is worded
717     better. [SW]
718   * panic() renamed mush_panic() as the Mach kernel now has a public
719     system call panic(). Report by Jeff Ferrell.
720
721
722 Version 1.7.7 patchlevel 24                     October 19, 2003
723
724 Minor Changes:
725   * The puppet flag can now apply to rooms. Suggested by Philip Mak.
726   * @tel/inside allows priv'd players to teleport into another player's
727     inventory (instead of to their location). Suggested by Philip Mak.
728 Fixes:
729   * Startups from a created minimal.db did not properly initialize
730     the objdata htab, so subsequent use of that htab (e.g. adding
731     players to channels) would crash. Report by [LdW].
732   * Help fixes by BladedThoth@M*U*S*H and Philip Mak.
733   * Attempting to clear a branch attribute when it has leaves now
734     gives a better message. Also better message for inability to
735     write an attribute due to tree issues. Patch by Luke@M*U*S*H.
736   * Bug in @debugforwardlist fixed by Luke@M*U*S*H.
737
738
739 Version 1.7.7 patchlevel 23                     October 10, 2003
740
741 Major Changes:
742   * Forking dumps now work with the chunk memory manager. [TAP]
743 Minor Changes:
744   * Chunk allocator improvements in partial read/writes and for
745     Win32. [TAP]
746   * Use the SHA0 algorithm from OpenSSL instead of our own when possible. [SW]
747 Functions:
748   * New digest() function for generating checksums via a variety of
749     algorithms. [SW]
750   * cowner() returns the dbref of a channel's owner. Suggested by
751     Sholevi@M*U*S*H. [SW]
752   * Added baseconv(), for converting numbers from one base to another.
753     Useful for tweaking things like Myrddin's bboard code. Suggested
754     by many people. [SW]
755 Fixes:
756   * Remove warnings in set.c and pcre.c. Report by Nymeria@M*U*S*H
757   * @power messages now show the canonical name of the power.
758     Suggested by Cheetah@M*U*S*H.
759   * Adding DARK players to channels produced a duplicated message.
760     Reported by Mystery8@ST:AW.
761   * Players set WIZARD and ROYALTY would get double notification
762     of some GAME: messages. Fixed now. [SW]
763   * Chatdb corruption possible when admin add players to channels.
764     Reported by several folks, diagnosed by Mordie@M*U*S*H.
765
766
767 Version 1.7.7 patchlevel 22                     September 30, 2003
768
769 Minor Changes:
770   * When possible, sockets are now set SO_KEEPALIVE and TCP_KEEPIDLE.
771     This may help prevent disconnections of idle players behind
772     poorly designed NAT routers and the like, and make the use of
773     the IDLE command unnecessary. Patch by Philip Mak.
774   * Better failure messages for 'get blah's blah', especially when
775     the container or contained object is ambiguous. Suggested by
776     Philip Mak.
777 Fixes:
778   * Attempting to unset attribute flags actually set them.
779     Report by Ambrosia@M*U*S*H. [SW]
780
781
782 Version 1.7.7 patchlevel 21                     September 23, 2003
783
784 Major Changes:
785   * Attribute trees. Attributes may now be organized hierarchically
786     like files and directories in a filesystem, using the backtick (`)
787     character as the branch separator. Attribute access restrictions
788     propagate down trees. New wildcard ** is introduced to match
789     all attributes at all tree levels. Suggested by Tabbifli. [TAP]
790 Locks:
791   * New framework for performing lock failure activities in hardcode.
792     As a proof-of-concept, the attributes FOLLOW_LOCK`FAILURE,
793     FOLLOW_LOCK`OFAILURE, FOLLOW_LOCK`AFAILURE do what you'd expect
794     when set on a potential leader.  Suggested by Sholevi@M*U*S*H.
795 Channels:
796   * New per-channel flags NoTitles, NoNames, and NoCemit do what you'd
797     expect. Set them with @chan/privs. Based on suggestion by
798     Saturn@M3.
799   * @chan/recall/quiet omits timestamps. Suggested by Vadiv@M*U*S*H.
800 Commands:
801   * 'help <wildcard-pattern>' now lists all help topics that match that
802     pattern.  By popular request. [MUX,SW]
803   * @flag/letter can be used to change or clear the one-letter alias for a
804     flag.  Suggested by Nymeria@M*U*S*H. [SW]
805   * @flag/list by God notes disabled flags. Suggested by Nymeria@M*U*S*H. [SW]
806 Functions:
807   * rand() now comes in a two-argument (low,high) flavor, and randword()
808     selects a random word from a list. The latter is aliased to
809     pickrand() to match Mux's name. Patch by Luke@M*U*S*H.
810 Minor Changes:
811   * Although we're Pueblo 2.50 compliant, go back to sending Pueblo 1.10
812     as the server version until everyone upgrades their clients so
813     they can handle the 2.50 string. Suggested by Shirow.
814   * The locate() function is no longer noisy (no longer notifies
815     the executor in addition to returning a value). Suggested by
816     Mystery8@ST:AW.
817   * @lock/interact now has a higher priority than other interaction
818     checks, so it will work for Wizards. Suggested by Viila@M*U*S*H.
819   * Tweaks to facilitate a Debian package of PennMUSH. [EEH]
820 Fixes:
821   * max descriptor could get stomped in some cases. [SW]
822   * Removed extra struct def in hdrs/mushtype.h. Suggested by Kyle.
823   * Help tweak by Kevin@M*U*S*H.
824   * Fix to locks on players messing up their connection failure counts.
825     Reported by Luke@M*U*S*H.
826   * Fix to @entrances by Luke@M*U*S*H.
827   * Fix to Win32 not handling a missing minimal.db by Luke@M*U*S*H.
828   * The confirmation message for setting/clearing attribute flags would use
829     the flag name given as an argument, not neccessarily the the full name of
830     the flag. Reported by Vadiv@M*U*S*H.  [SW]
831   * Fix a potential memory leak in ident.c [SW]
832
833 Version 1.7.7 patchlevel 20                     September 4, 2003
834
835 Major Changes:
836   * minimal.db is no more. If you start up the server and there's no
837     db to be found, it creates a new minimal database in memory
838     on the fly. Feel free to delete your coopy of minimal.db. [SW]
839     (In related news, the default OSUCC on #0 in minimal.db is gone.
840     Suggested by Cheetah@M*U*S*H. So much for the mists.)
841 Minor Changes:
842   * SSL connections are now ended before the dump when rebooting,
843     but their descriptor information sticks around to ensure that
844     their @adisconnect is run after the reboot. Based on suggestions
845     by Vadiv@M*U*S*H and [TAP].
846   * When _DEBUG is defined in a win32 build, don't copy pennmush.exe
847     to pennmush_run.exe. Makes debugging easier. Patch by Luke@M*U*S*H.
848   * In pueblo mode, no longer clear past images after each room look.
849     Patch by Konstantine Shirow.
850   * In pueblo mode, we no longer render ansi attributes or colors with
851     HTML tags; we assume the client will correctly handle them as ansi
852     intermixed with Pueblo. This solves a variety of problems.
853     Based on a discussion with Konstantine Shirow.
854   * When matching $commands and ^listens, insure that a matching attribute
855     exists before testing locks. This may break some strange locks using
856     %c, but hopefully won't. Suggested by Cheetah@M*U*S*H.
857   * The @scan command temporarily sets %c to the command to be scanned
858     (without "@scan" prefixed) so that it can detect commands that use
859     %c-matching. Based on ideas from Cheetah and Walker@M*U*S*H.
860   * Added support for Pueblo's md5 checksum. We track it on each
861     descriptor, though we don't do anything with it currently.
862   * Speed-up to fun_merge. Patch by Walker@M*U*S*H.
863   * Internal cleanup of flags in channel_broadcast.
864   * Wizards may @name themselves to names forbidden in names.cnf.
865     Patch by LeeLaLimaLLama@M*U*S*H.
866   * We are now forgiving of stupid non-RFC-compliant telnet clients
867     that send CR only even when they claim to be sending CRLF
868     (Read: MS Windows XP telnet). MS bug reported first by
869     Intrevis@M*U*S*H.
870   * Misleading restrict_command on @clone removed from restrict.cnf,
871     as @dig/@open/@create permissions already control @clone.
872     Suggested by Philip Mak.
873 Functions:
874   * lstats() and quota() now allow objects to see stats/quota on other
875     objects they control (e.g., on their owners, perhaps). Suggested
876     by Philip Mak.
877   * hastype() can now test for type GARBAGE. Suggested by Tanaku@M*U*S*H.
878 Commands:
879   * The new ']' command prefix causes the rest of the command-line
880     not to be evaluated by the expression parser. Try: ]think [add(1,1)]
881     Inspired by Elendor.
882   * @hook/ignore. [mux]
883   * @hook/override [Rhost, though they don't call it that]
884 Attributes:
885   * @debugforwardlist forwards DEBUG output to dbrefs on the list.
886     Suggested by Balerion@M*U*S*H.
887 Tests:
888   * A new test harness for developing regression test suites in perl
889     for PennMUSH is now included; few test suites are. If you can figure
890     out how to use this, write some tests for us! (If you can't, don't
891     ask about it, please :)
892 Locks:
893   * @lock/interact can prevent other players from transmitting any
894     normal sound to you (that is, you won't hear them speak, pose,
895     emit, etc., like gagging them in a client). It doesn't control
896     page (use @lock/page) or @mail (use @lock/mail). You still
897     hear 'presence' messages (connects/disconnects/arrivals/leaves)
898     so you can have a sense of who can hear you but you can't hear.
899     Patch by Philip Mak.
900 Fixes:
901   * Configure script no longer keeps adding -lssl -lcrypto over and
902     over to the Makefile. Report by Sholevi@M*U*S*H.
903   * Portability fixes for compiling with MSVC5 by Luke@M*U*S*H.
904   * The behavior of spaces inside parentheses that aren't part of a
905     function has been improved. Report by Jason Newquist. [TAP]
906   * txt/*.html files were being improperly escaped before being
907     sent to Pueblo connections. Report by Konstantine Shirow.
908   * mushdb.h includes flags.h, as it relies on constants from there.
909     Suggested by Philip Mak.
910   * Better error reporting on some failure messages in chunk allocator.
911     Patch by Philip Mak.
912   * @config/set with an invalid option now returns an error.
913     Report by Sholevi@M*U*S*H.
914   * Fix to interaction checking in notify_anything that could result
915     in the wrong check being performed. Report by Philip Mak.
916   * Help fixes by LeeLaLimaLLama@M*U*S*H, Sunny@M*U*S*H, Sketch@M*U*S*H.
917
918
919 Version 1.7.7 patchlevel 19                     August 19, 2003
920
921 Fixes:
922   * When SSL connections are dropped on reboot, other players weren't
923     seeing disconnect messages. Now they are.
924   * Two calls to flaglist_check_long didn't get converted to the new
925     abstraction layer, making flag_broadcast not work right.
926     Report by Luminar@M*U*S*H.
927
928
929 Version 1.7.7 patchlevel 18                     August 19, 2003
930
931 Major Changes:
932   * The flag handling code has been additionally abstracted to
933     allow, in a future patchlevel, @powers to be handled in the
934     same way that flags are now.
935 Minor Changes:
936   * Wrap the OS-dependant code for making sure the mush always has a free
937     file descriptor available for use in a pair of functions. [SW]
938 Fixes:
939   * Linted some ssl-related warnings. Reported by Cheetah@M*U*S*H.
940   * Compile failed in timer.c unless USE_MAILER was defined.
941     Reported by Sunny@M*U*S*H.
942   * Bug allowing players to view internal and mortal_dark attributes
943     introduced in p17 has been fixed. [TAP]
944
945
946 Version 1.7.7 patchlevel 17                     August 11, 2003
947
948 Major changes:
949   * SSL support, including server and client authentication as options.
950     This should be considered experimental.  New ssl() function returns 1
951     if a player/descriptor is using SSL, 0 otherwise. New file README.SSL
952     documents how to set up SSL. Two things to note:
953     - SSL connections are dropped on @shutdown/reboot, so SSL users may
954       wish to write client triggers to reconnect.
955     - Output flushing behaves slightly differently for SSL connections.
956   * The way lock keys are handled internally has been rewritten to allow
957     them to be tracked by the same chunk-management code that handles
958     attributes. [SW]
959   * @mail message texts are now stored with the chunk-management code. [SW]
960   * The new code can no longer read databases created by versions of Penn
961     before 1.7.5p0. If you need to do this, load it in 1.7.6, shutdown,
962     and use that database. [SW]
963 Minor changes:
964   * A new minimal.db is distributed (older ones probably won't work,
965     and this one probably won't work with older versions). [TAP]
966   * Contents/exits lists and functions that use first_visible (like
967     lcon, lexits, etc.) are now affected by INTERACT_SEE. Suggested by
968     Prospero@Metro.
969   * @chan/recall now displays the last 10 lines by default. Use
970     @chan/recall <chan>=0 to get the full buffer. Suggested by [TAP].
971   * Various boolexp tweaks. [SW]
972   * @power provides more verbose feedback. Suggested by Mordie@M*U*S*H. [SW]
973   * Additional chunk tweaks, including limiting migrations to one
974     per second. [TAP]
975   * PROFILING #define for use when profiling the code (surprise). This
976     just disables the CPU timer.
977   * When matching $-commands, only call the slower capturing wildcard match
978     function when we already know it succeeds, since it won't most of the time.
979     The faster non-capturing function is checked first to find a match. [SW]
980   * PCRE is initialized once, at startup, rather than testing to see if it has
981     to be done before each place regular expressions are used. [SW]
982   * The TERSE flag now applies to objects, not just players. Suggested
983     by Aur@M*U*S*H.
984   * The terminfo() function now returns SSL status as well.
985   * help-like commands without arguments now use the command name
986     as the argument. E.g. 'news' now looks for topic 'news', instead of
987     'help'. If not found, we fall back on help. Patch by Mike Griffiths.
988   * When an object is zoned to an unlocked ZMO, the ZMO is now autolocked
989     to =me instead of $me, because it's probably less confusing.
990     Suggested by Luke@M*U*S*H.
991   * @name now automatically trims leading and trailing spaces from its
992     newname argument, to avoid confusing people who use edit() to
993     generate new names and leave in spaces. Report by [TAP], patch by [SW].
994 Commands:
995   * New 'logargs' and 'logname' restrictions in restrict.cnf allow
996     per-command logging. Suggested by Saturn @ M3.
997 Functions:
998   * The sha1() function has been renamed sha0(), since that's what it
999     really does. [TAP]
1000   * trimtiny() and trimpenn() work like trim(), but force the TM or
1001     Penn argument style.
1002   * New 'logargs' and 'logname' restrictions in restrict.cnf allow
1003     per-function logging. Suggested by Saturn @ M3.
1004 Fixes:
1005   * The side-effect version of name() was producing a weird return
1006     value. Reported by Saturn@M3.
1007   * Problems with restrict_command and restrict_function with multiple
1008     restrictions now fixed. Report by Sholevi@M*U*S*H.
1009   * stddef.h now included in src/extchat.c. Report by [EEH]. [SW]
1010   * INFO output now includes a missing newline. Report by [EEH]. [SW]
1011   * help BUILDER updated. Report by Laura Langland-Shula.
1012   * down.txt message wasn't being sent. Report by Sholevi@M*U*S*H. [SW]
1013   * New Win32 project files that include the chunk code. [EEH]
1014   * @chan/what no longer highlights the channel's name, as this is
1015     confusing if you use ansified channel names. Suggested by
1016     Oriens@Alexandria.
1017   * ex/mortal now operates more correctly. Report by Amy Kou'ai.
1018   * Fixes from 1.7.6p13.
1019
1020 Version 1.7.7 patchlevel 16                     June 23, 2003
1021
1022 Commands:
1023   * New switch /room for 'with' to run a $command available in a remote
1024     location. Suggested by Mike Griffiths. [SW]
1025 Functions:
1026   * Added the terminfo() function, which returns information about a
1027     client's name and capabilities for a particular connection. [SW]
1028   * New lports() function. Like lwho() but returns port descriptors.
1029     For mux2 compatibility. [SW]
1030   * Functions that return information about a connected player now treat
1031     integer arguments as a port descriptor to look up, rather than using
1032     the least-idle connection of a player. To force a player name to
1033     be treated as such even when it's a number, prefix it with a * in
1034     softcode. For mux2 compatibility. [SW]
1035   * Players can use ports() on themselves and use the descriptors
1036     they're connected to as arguments to the information functions.
1037     For mux2 compatibility. [SW]
1038 Minor Changes:
1039   * Compute various chunk stats (total used, total free space, etc.)
1040     on demand instead of keeping running totals. [TAP]
1041   * @chan/what displays information about a channel's recall buffer, if any.
1042     [SW]
1043   * @chan/recall'ed lines are more clearly marked as such. Suggested by
1044     Oriens@Alexandria. [SW]
1045   * Consolidation of a common idiom used to format times throughout the source
1046     into a simple function call. [SW]
1047   * The time a @mail was sent was stored, unusually, as a string.
1048     No longer. Now it's handled the same way as all other times. [SW]
1049 Fixes:
1050   * Bug in resizing @chan/recall buffers fixed. Reported by Oriens@Alexandria.
1051     [SW]
1052   * Objects with user-defined locks had problems with finding built-in locks
1053     on the object. Reported by Walker@M*U*S*H. [SW]
1054   * Unregistered() macro was checking wrong flag name. Report by
1055     Matt Kirby.
1056   * Help fix by Adu@M*U*S*H.
1057   * Potential problem with ambigious names in the information functions fixed.
1058
1059
1060 Version 1.7.7 patchlevel 15                     June 1, 2003
1061
1062 Fixes:
1063   * Problem with checking command flag masks when the number of
1064     flags was an even multiple of 8. Reported by Nymeria and
1065     Mordie@M*U*S*H.
1066   * Tweak to improve efficiency of ancestor checking code and delint
1067     warning reported by Cheetah@M*U*S*H.
1068   * SESSION output no longer misal