forked from pennmush/pennmush
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.183
711 lines (634 loc) · 32.1 KB
/
CHANGES.183
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
This is the changes file for PennMUSH 1.8.3. Please look it over; each
version contains new things which might significantly affect the
function of your server. Changes are reported in reverse
chronological order (most recent first)
[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos), also
responsible for most unattributed changes.
[EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar)
[GM] is Greg Millam, a PennMUSH developer (aka Walker)
[MG] is Mike Griffiths, a PennMUSH developer (aka Talvo)
[TAP] is T. Alexander Popiel, a former PennMUSH developer (aka Talek)
[3] refers to code by (or inspired by) TinyMUSH 3.0
[MUX] refers to code by (or inspired by) TinyMUX 2.x
[Rhost] refers to code by (or inspired by) RhostMUSH
==========================================================================
Version 1.8.3 patchlevel 13 Feb 13, 2010
Minor Changes:
* align() columns can now have ansi color definitions. [GM]
Fixes:
* Heisencrashbug in command parser fixed. Reported by Mercutio. [GM]
* Bug in randword() and extract() fixed. [MG]
* Fix several memory leaks. [SW]
* Help fixes by aumiiari and others. [MG]
* Add more specific log messages when the chatdb fails to load, from
report by Dan@M*U*S*H. [MG]
Version 1.8.3 patchlevel 12 Feb 07, 2010
Major Changes:
* 'mud_url' @config. If this is enabled, accessing the mush with an HTTP
browser will redirect the user to the selected mud_url. (This may need
some work and testing by a public place with many clients.) [GM]
* The internal code for object matching has been rewritten, hopefully
fixing a few bugs and improving match results in some cases. [MG]
Minor Changes:
* align() can now do full justification. Suggested by Trinsec@M*U*S*H [GM]
* Wrapping fixes in align(). Reported by Trinsec@M*U*S*H [GM]
* Guests will no longer see "Guests can't do that" if @mail is restricted
to noguest. [GM]
* Helpfile cleanup. [MG]
* Expand the @lock key optimizer. Try '@lock me=!!=me'.
* When objects are destroyed, references to them in locks
are replaced by #FALSE, so that a newly created object reusing
some dbref won't pass locks it shouldn't.
* /'s can now be included in the subject of a @mail
message via doubling it up -- @mail foo=a//s//l/What's up?
Suggested by Paige.
* locate() now ignores spaces in its 3rd argument. [MG]
* Change the default mud_name in mush.cnf from TinyMUSH
to PennMUSH. Suggested by many people over the years.
* @firstexit can now take multiple exits, and can affect exits in other
rooms. Suggested by AnneLions. [MG]
* Changed some default mush.cnf options. [MG]
* Remove the old patches.h way of showing installed patches. It was
broken and rarely used anyways.
* Removed the little-used "page_cost" @config option. [MG]
* Removed costs for @find, @zemit, @entrances and @mail/stats. [MG]
* @hide can now affect a single descriptor, rather than all of a player's
connections. A player is only considered hidden if all his connections
are hidden. Wizards can also @hide other players. [MG]
* Wizards no longer automatically @hide when set DARK (but are hidden when
connecting dark with "cd"). [MG]
* sql() now takes a fourth argument, to return the number of affected rows.
Suggested by Mercutio.
* baseconv() fixes for malformed input, "-" ambiguity in base 63/64, and
missing "-" sign for single-digit output.
* Flag names now have similar restrictions to attribute names. [MG]
* The @ns*emit commands and ns*emit() functions are no longer restricted;
when used by mortals, they work exactly the same as the non-ns versions.
Suggested by Michael Blackburn. [MG]
* Update autoconf to 2.65.
* @grep/print now shows a : before the attribute contents, the same as
examine. Suggested by Cheetah. [MG]
Commands:
* Removed the /functions, /attribs, /commands and /flags switches from
@config. Use @list/<switch> instead. [MG]
* @decompile changes: added /name, the opposite of /db. You can now give a
'=<prefix>' without needing the /prefix switch, and can use other
switches with /tf, like @decomp/tf/flags <obj>. Suggestedby Trinsec. [MG]
* @entrances can now take multiple switches, to show multiple types. [MG]
* Removed the obsolete @map command. [MG]
* @boot <player> now boots all of <player>'s connections, not just the
first. Similarly, @boot/me boots all your idle connections. [MG]
* @dump/debug was broken and undocumented. [MG]
* Removed page/blind (and the blind_page config option). [MG]
Functions:
* llocks() without any arguments returns a list of the standard locks.
* unsetq(), to erase queue registers. [GM]
* and[l]flags(), or[l]flags(), andlpowers() and orlpowers() now all return
#-1 if an invalid flag/power is given. Suggested by AnneLions. [MG]
* benchmark(), to benchmark softcode. [DC]
* Added "flag" as a category to valid(), to check for valid names for
@flag/add and @power/add. [MG]
* New pfun() function, which evaluates attributes from your parent as if
you were inheriting them, even if you have your own copy of the attr. [MG]
* locate() can take a new parameter, 'x', which causes it to only match
exact object names, ignoring partial matches. Suggested by Minion. [MG]
* ncand()/ncor(), short-circuit versions of nand()/nor(). [MG]
Fixes:
* Bug in ansi() when no colors are given and buffer_len is reached has
been fixed. Reported by Chris Humbert. [GM]
* Bug caused by silly assumptions in list2arr() regarding remove_markup
fixed. Reported by Stoko@M*U*S*H. [GM]
* Using some substitutions on the connect/motd/etc attributes introduced
in p11 could cause a crash. Reported by Minion@M*U*S*H. [GM]
* Substitions on the connect/motd/etc attributes now work as expected
when a player is connected. Suggested by Minion@M*U*S*H. [GM]
* English matching works better with possessive get
(get box's 2nd thing). Reported by israphel.
* Various additions and changes to the translatable server messages by
Stoko. Also updated the I18N file, and added /po/pennmush.pot.
* 'No such file' messages were logged by mistake when connect_file and
similar options were set to a dbref/attr. Reported by Zalethon. [MG]
* Some cygwin C library versions define the imaxdiv_t type but not the
associated imaxdiv() function. Split them up into 2 configure checks.
Reported by Rankard.
* Several math functions didn't complain if their first argument wasn't
a valid number. Reported by Jules. [MG]
* @wipe would incorrectly set the attribute list for an object in some
cases, making some attributes appear to be deleted. Reported by
Cooee@M*U*S*H. [MG]
* The Pueblo_Send @power did not allow objects to send restricted HTML
tags, just attributes. Reported by Daniel Powell. [MG]
* Fixed a crashbug in @uptime. [MG]
* Various Pueblo fixes. By Sketch.
Version 1.8.3 patchlevel 11 Jan 01, 2010
Major changes:
* The WHO, DOING and SESSION commands are now normal game commands,
and can be @hook'd, typed in lower-case, etc. (The WHO at the login
screen is separate.) If you have a softcoded 'who' command, you will
need to @hook/override WHO for it to continue working. Suggested by
Bane. [MG]
* The "take" command has been moved from the hardcode into alias.cnf.
If you want to keep it as an alias for "get", you should add the line
"command_alias get take" into your alias.cnf. [MG]
Configuration:
* The *_file options (connect_file, motd_file, etc) can now be a
#dbref/attribute instead of a filename, in which case the given
attribute is evaluated and the result shown in place of the text file.
Based on patches by Nathan Baum and Mercutio@M*U*S*H. [MG]
Commands:
* @decompile now takes multiple attribute patterns after the /
(@dec obj/attr attr2) [GM]
* @channel/decompile now shows the dbref of the channel mogrifier,
instead of its name. [SW]
* @pemit now takes a /port switch, which sends the message to the
specified port. Suggested by Mercutio. [MG]
* @hook/list without a <command> now shows all commands which have hooks.
Based on a patch by Trinsec. [MG]
* @search now takes multiple <class>=<restriction> pairs. [MG]
* The IDLE command now takes an optional argument, which it prints back
to the descriptor which sent the command. [MG]
* IDLE no longer increases the cmds() for a descriptor. [MG]
Functions:
* die() now takes up to 700 dice.
* remove() will now remove a list of words.
* table() now supports <, > and - as alignment parameters to field width.
* testlock(<boolexp>, <victim>) tests a lock without setting it.
Suggested by Mercutio@M*U*S*H. [GM]
* lnum() now takes a fourth argument: A step. [GM]
* cwho() now takes an optional second argument, to control whether
online, offline or all players are returned. Suggested by Mercutio,
based on a patch by Ifrit. [MG]
* room(<room>) now returns <room>, instead of #-1. Also, room(<exit>)
returns the exit's source room, rather than the destination. Suggested
by Null@M*U*S*H. [MG]
* Fixed a bug in how align() strips spaces when wrapping text. Reported
by Paige@M*U*S*H. [MG]
* pemit(<port number>, <message>) sends <message> to the specified
port, like @pemit/port. Suggested by Mercutio. [MG]
* lports() and lwho() take an optional second argument to include
connections at the login screen. Suggested by Mercutio. [MG]
* namelist() now takes an optional #dbref/attr, called for each invalid
name in the first argument. [MG]
* lmath() can now do lt, lte, gt, gte, eq and neq. Also, lt(), lte(),
etc, can all take more than 2 arguments. [GM]
* Anyone can now use ctime() on any object. [MG]
* locks() reported built-in locks as being user: locks. [MG]
Fixes:
* Help fixes by various folks.
* lsearch() with invalid syntax was failing to report it as such, causing
confusion when lsearch(me,exits) returned the same as lsearch(me). [GM]
* fun_merge() was eating characters when ansi was present. Reported
by Nammyung. Fixed. [GM]
* Windows compile fixes.
* Math-y crashbug fixed. Reported by Ghost@M*U*S*H. [GM]
* page/port didn't evaluate its arguments properly. Reported
by [email protected]. [SW]
* randword() with a single element list wasn't dealing correctly
with extra spaces. Reported by Minion. [SW]
* @listen/^-listens should now be triggered with the object being
spoofed as %#, not the object doing the spoofing, when @message/spoof
(and @pemit/spoof, etc) are used. Reported by Mercutio@M*U*S*H. [MG]
* Fixed some minor type-related warnings when compiling on cygwin. [MG]
* @functions which were set "localize" would report being set "Userfn"
as well, and functions set "Userfn" weren't reported as such. [MG]
* Objects could be set with flags which weren't valid for their object
type, if such flags were in the <type>_flags config option. Found by
Kitai. [MG]
* Crashbug in the command parser fixed. Found by Freon, patch by Javelin.
* Added some missing punctuation in channel messages. Reported by Stoko.
Minor changes:
* @listen/^-listens now carry over ANSI. Requested by Mercutio. [MG]
* @adisconnect now has %5, which is true if the disconnecting descriptor
was @hide. Suggested by Minion@M*U*S*H [GM]
* @pemit <name>= would show nospoof info if <name> was set Nospoof. Now,
it does nothing at all. Reported by Minion. [MG]
* The connect screen can now contain ANSI color. Patch by Mercutio.
* Small bug fix in @search. [MG]
* Built-in functions can be set FN_LOCALIZE to preserve %q-regs. [MG]
* Refactoring of ufun(), ulocal(), u[l]default() and ulambda(). [MG]
* The "Not enough money to queue command" message tells you which object
was attempting to queue the command. Suggested by Daniel Powell. [MG]
Tools:
* New script in utils/ for searching change logs: grep-cl.pl [SW]
Version 1.8.3 patchlevel 10 Aug 24, 2009
Major changes:
* Switched project management (Bug tracking, revision control, etc.)
to Google Code. See http://code.google.com/p/pennmush
Minor changes:
* @search and lsearch() now only charge 100 pennies if an evaluating
search (EVAL, EPLAYER, EROOM, ETHING, EOBJECT, EEXIT or ELOCK) or
an exhaustive attribute search (COMMAND, LISTEN) is performed.
* The %u sub now works for built-in commands, as well as $-commands.
Useful for @hooks. [MG]
* The use command now understands english matching. Suggested by
Yuriko.
* Rooms can now use @open/open(). [MG]
* Mortals can now use '@attribute <attrib>' to see the default flags
of a standard attribute. [MG]
* @channel/priv now uses 'thing' instead of 'object' for channels
which allow things to join. 'object' is kept as an alias. [MG]
* The chatdb now saves channel buffers and mogrifier objects, so you
don't need to put @chan/buffer or @chan/mogrifier in @startup. [MG]
Flags:
* The HEAR_CONNECT flag is now used (instead of MONITOR) to allow
players to see 'GAME: Foo has [dis]connected.' messages. MONITOR
on players now enables ^-patterns, the same as on things/rooms.
Any players with the MONITOR flag will have it replaced with the
HEAR_CONNECT flag automatically. Requested by Malix@8BitMUSH. [MG]
Functions:
* lpids(), getpids(), and pidinfo() provide information about
wait/semaphore process ids and processes. Suggested by
Yuriko@M*U*S*H, code by Javelin.
* lalign() works like align(), but takes a single arg with a list of
columns, instead of one arg for each column. Suggested by Teal. [MG]
* New lockowner() function returns the owner of an @lock. Suggested
by Paige. [MG]
Fixes:
* @pcreate without a password would crash the game. Fixed. [GM]
* DARK-disconnected on channels was turned into DARK-connected, on
disconnect. Reported by Paige@M*U*S*H, among others.
* MOGRIFY`BLOCK wasn't being called, as help @channel6 said it was.
Oops. [GM]
* Help fixes, by Sketch and others. [GM]
* @clone could mess up the names of the original and the clone.
Reported by qa'toq. [SW]
* Crash bugs in rand() and randword(). [SW]
* Added --disable-zlib configure option to turn off using
zlib to work directly with compressed databases. Passing this to
configure makes the game act like pre p8 ones. [SW]
* member() now ignores ANSI in matches. Reported by Minion. [MG]
* Regexp $-commands are now ansi aware. As in: ansi is passed to %0-%9. [GM]
* hidden() now works on descriptors as advertised. Reported by Teal. [MG]
* @name could cause a crash. Fixed. Reported by Zedekiah@M*U*S*H [GM]
* @nscemit/silent didn't work. Reported by Paige. [MG]
* Win32 compile fixes and project file updates.
* The chatdb failed to load when objects of the wrong type were listed
as channel members. Reported by Teal. [MG]
* flags() on an attribute used as the root of a tree would include the
` twice.
* baseconv() would hang the MUSH if passed a negative <number>. Reported
by Mercutio. [MG]
Version 1.8.3 patchlevel 9 Feb 28, 2009
Fixes:
* Starting up without an existing database was broken in p8.
Reported by many people. [SW]
* p8 didn't compile for many people for a number of reasons.
[SW]
* match() was broken. Reported by Kimiko. [SW]
Version 1.8.3 patchlevel 8 Feb 26, 2009
Major changes:
* @chan/mogrifier - Mogrify (mangle) any and all aspects of @channel
chatter. e.g: make <Public> into [cilbuP]. [GM]
Minor changes:
* The restart script appends a timestamp to the backups of
existing databases and log files that it makes. Suggested
by Ray,
* @setting a flag that's already set will say so. Suggested by
Kimiko, patch by Talvo.
* Added 'magic sort': Sorts strings with embedded numbers and
dbrefs.
* Controlling whether info_slave is used or not moved into configure
from options.h. (--enable-info_slave/--disable-info_slave). [SW]
* Experimental change to attribute lookup to reduce the number of
expensive string comparisions needed. [SW]
* Updated the Mersenne Twister PRNG to a newer version (Look up
SFMT for details). [SW]
* New configure options --enable-sse2, --enable-sse2 and
--enable-altivec. Currently only used in a few spots, including
the new version of the PRNG. [SW]
* Remove the MALLOC_PACKAGE option and csrimalloc, the only remaining
non-system malloc() choice for it. csrimalloc didn't compile any more
and there are better memory debugging tools available these days (The
rational for keeping it when other malloc packages were removed.) [SW]
* The mush can now read and write gzip-compressed databases without
relying on external programs if the server has zlib installed. [SW]
* @search and search() now have a 'command' and 'listen' search class,
allowing @searches for objects that respond to given $-commands and
listen patterns. [GM]
* New config option to reserve space on startup for the chunk swap
file to reduce on-disc fragmentation (With a supported OS). [SW]
* @shutdown/reboot makes an effort to verify that the executable
still exists before trying to restart. Suggested by Alrynnic. [SW]
Commands:
* @config/save foo=bar acts like @config/set but also attempts to
alter the original configuration file to reflect the new value. [SW]
* Wizards can specify a garbage dbref for @create and @pcreate to
re-use instead of the first free one. Suggested by Mercutio, based
on patch by Talvo.
Functions:
* Improved the soundex() implementation. [SW]
* Removed the arbitrary limit on the number of @functions. [SW]
Fixes:
* locate() always used english matching even when not explicitly told
to. Patch by Talvo.
* sha0 hashing was broken on 64 bit systems without OpenSSL. Reported
by Exaurdon. [SW]
* The dump_complete message wasn't being shown on a successful forking
dump. Reported by cquesnel. [SW]
* speak() deals better with message strings like 'you," he adds, "rock!"'
Reported by Summer, fix based on Javelin's analysis.
* speak() deals better with mismatched quotes. Reported by Summer. [SW]
* A long-standing bug where it was possible for multiple mushes to use
the same port (One on an IPv6 version, one on a IPv4 one) is now
harder to trigger and gives a better error message. [SW]
* Plug a memory leak in decode64().
* wild matching with ansi involved has been fixed. [GM]
* clflags() sometimes truncated its result. Reported by dbwiddis. [SW]
Version 1.8.3 patchlevel 7 Oct 01, 2008
Minor changes:
* If compiling with a recent enough version of gcc to support the
-fstack-protector option to detect buffer overruns, use it.
* Compile with -mdynamic-no-pic on powerpc OS X, resulting in a smaller
binary.
* On newer Linux systems, detect when various indexed and cached files
are changed and automatically reload them instead of waiting for a
@readcache.
* New map data structure with integer keys, used in various places.
* Queue entries now have process ids, used to identify and act on that
particular action list. This and associated commands inspired
by [Rhost].
* New configure option --disable-sql to turn off checks for all supported
SQL servers.
* @name strips out quotes around player names even if spaces in them are
disabled.
* The test suite can now use valgrind to identify buffer overflows and
similiar problems triggered by tests, by passing the --valgrind option
to test scripts.
* Significantly reduce memory usage in @sitelock rules.
Commands:
* '@hook/override cmd=#1234' will look at all attributes on the object
for a matching $command. By Talvo.
* @sitelock/delete NNN will remove the sitelock rule with that number.
* @halt/pid NNN will remove a specific queue entry. Get the pid from
@ps. [Rhost]
* @wait/pid will adjust the wait time of queue entries. [Rhost]
* @chan/title <channel> will display your current channel title.
@chan/title <channel>= will clear it. Patch by Talvo, suggested by
Ender.
* @chan/recall could be used on any channel, not just by people on
a given channel. Patch by Talvo.
Functions:
* controls(<who>,<what>/<attribute>) tests if someone can change or
create a specific attribute on an object. By Talvo.
* hasattr() and family also understand foo(<object>/<attribute>) in
addition to the traditional two-argument form. Suggested by Impster,
patch by Talvo.
* cbufferadd() - Add text to a channel buffer without broadcasting it.
Allows for @chan/recall on an @chat that's been overridden.
* Rewrote the internals of round() to avoid some nasty kludges. [SW]
* ljust() and rjust() take fill strings now, not just single
characters. Suggested by Nyssa, patch by Talvo.
* baseconv() now supports up to base64.
* The undocumented (And unusable) orpowers() and andpowers() functions
were removed.
* andlpowers() and orlpowers() were missing help files. Reported by
Parusso.
Fixes:
* Potential infinite loop in error logging fixed. Reported by Yuriko.
* Compilation fixes on various platforms. [SW]
* A repeatingly crashing info_slave won't block login attempts.
* @chan/what reports the number of actual lines stored in
recall buffers, not the number of blocks. Reported by
qa'toq [SW]
* portmsg didn't compile. Reported by Impster. [SW]
* A chat db with a garbage object on a channel would fail to load.
Reported by Rince.
* Fixed a double free error in page. By Ricochet.
* Many help file and source documentation fixes reported by far too
many people to list.
* Hard-to-trigger double free() in help file reindexing fixed.
Version 1.8.3 patchlevel 6 Jan 01, 2008
Major changes:
* If configure finds a copy of the pcre library installed, that will
be used instead of the (old) version bundled with Penn. use
--with-pcre=/path/to/it if it's not in the usual places, or
--with-pcre=no to force use of the bundled version.
Minor changes:
* @sitelock when there are no rules will now say that instead of
having no output. By Talvo.
* Log files use locking to prevent the small chance of more than one
process writing to the same error log at the same time.
* info_slave's logging is more clear as to its source.
* Several places that used the select() system call now favor poll()
and/or socket timeouts instead. (The main event loop still uses
select() for now.)
* A wildcard help topic search (help foo*) that only matches one
entry will display that entry. Suggested by Cheetah.
* New switches for commands no longer have to be added to the
SWITCHES file; the internal list of switches is now built based on
what switches are given in the command table and cmdlocal.c
additions. Suggested by Talek.
Flags and powers:
* The announce power now also grants the ability to change the motd.
Suggested by Yuriko.
* New hook power grants rights to use @hook. Suggested by Paige.
* Windows compile fixes by Intrevis.
Commands:
* @motd gives better feedback when clearing a message.
* The @tport/@otport/@atport/etc. attributes that get evalulated on a
@teleport now get the dbref of the object doing the teleport in %0
and the teleported object's old location in %1. Suggested by Daniel
Cheng.
Functions:
* root() uses an improved algorithm to give a more precise
result.
* log(N,2) uses the C log2() function if available.
* log(N,e) takes the natural logarithm of N, like ln().
* lports() now takes an optional viewer argument, a la lwho(). By
Talvo.
Fixes:
* Typo in info_slave preventing simultaneous hostname lookups fixed.
* Compiliation fix with some compilers. Reported by Kimiko.
* ident lookups of new connections was broken for several
patchlevels. Works again. Sometimes.
* Cleaned up some warnings generated by gcc 4.2
* Fixed some minor bugs detected by running under valgrind.
* OpenBSD configuration fixes.
* Fixes from 1.8.2p8
Version 1.8.3 patchlevel 5 October 6, 2007
Major changes:
* Significant rewrite of ansi parsing and better ansi support
for many string-handling functions. Patch by Sketch.
* Rewrite of the softcode regression testing framework, and
addition of more tests. [SW]
Minor changes:
* Store a pointer to the start of a player's mailbox in objdata
instead of the connection struct.
* Experimental rewrite of hash tables to use the cuckoo hashing
algorithm, with constant-time lookups even in the worst case.
(And appears to have generally faster lookup even in normal usage.)
* Regular expression @sitelocks save the compiled regexp instead of
recompiling every time the rule is tested.
* Added %4 to @pageformat, which is the default page message.
Commands:
* Added @message, which makes it easy to use @chatformat or
@pageformat via @hooks, or to create your own *format.
Functions:
* Added message(), the function version of @message.
Fixes:
* decode64() does better validation of its input. [SW]
* Various compile fixes reported by Interevis and Kimiko.
Win32 patched by Intrevis.
* @sitelock does better error reporting. [SW]
* Crash bug related to regeditall fixed.
* @decompile didn't handle attribute trees correctly.
* Compile failure in funstr.c on some systems. Fixed by Boris.
* '@set =foo' failed silently. Reported by Talvo.
* Fixes from 1.8.2p7
Version 1.8.3 patchlevel 4 July 9, 2007
Major changes:
* Parts of the build process that used a shell script to regenerate
certain headers now use perl scripts instead, making them much
faster. [SW]
Minor changes:
* The hash tables used by lmath() and html functions now
use perfect hashing to speed up lookups. [SW]
* The various slab allocators used by attributes and locks
and other areas have been replaced with a generic
slab allocator. Also, many more allocations are handled
by the new code.
* Use the writev() system call to send data to unencrypted
connections in bigger chunks instead of using multiple send()s of
smaller chunks.
* New lock types can be added via src/local.c instead of having to
alter the table in src/locks.c. Based on patch by Talvo.
* Builtin lock names and default flags are stored in a hash table
instead of a list. [SW]
Attributes:
* @chatformat allows you to customize Channel chat messages
that you see. [GM]
Commands:
* '@list allocations' displays allocation information.
* @stats/tables no longer dumps mem_check information.
* @search (and by relation search()) now has an 'elock'
search class, permitting boolean expression searches. [GM]
* @channel/recall extended to support recalling by time. Example:
'@chan/recall Foo=1h' will recall lines only from the past
hour. Patch by Talvo.
Functions:
* cond() works like an if, else if, else if ... ncond(),
condall(), ncondall() also added. [GM]
* speak() accepts a 1st argument beginning with '&' to use
an arbitrary speaker name. [GM]
* New speakpenn() function handles : <pose> in Penn style.
Suggested by Sketch, patch by Javeln.
* lmath() accepts dist2d and dist3d. Suggested by Jess.
* functions(local) returns just local @functions. [SW]
* New encode64() and decode64() functions convert between
normal text and base64 encoded text on games that have
SSL support compiled in. [SW]
* encrypt() and decrypt() now take an optional 3rd argument
to control using base 64 encoding. Suggested by Noltar.
Fixes:
* Compile fixes for some linux (And other?) systems that expect
all libraries to be after source files on the command line
when linking. Reported by Balerion.
* Compile fix for some Postgresql installations. Reported by
Nymeria.
* Fix to fraction() when dealing with numbers that can't
be fractioned. Discovered by Ashen-Shugar.
* Fixes to align() and coalescing by Javelin. Bugs reported by
Sketch and tramp.
* Fixes to speak() to bring it closer to Tiny's behavior in
common cases by Sketch and Javelin.
* Fixes to ANSI output where extra ^[[m were being sent.
* Default flags weren't getting set on some attributes in certain
cases. Report by Talvo.
* Fixes from 1.8.2p6
Version 1.8.3 patchlevel 3 June 13, 2007
Minor changes:
* The sockets used to talk to info_slave changed from streams
to datagrams, simplifying code. [SW]
* info_slave deals better with simultaneous connections. [SW]
* info_slave requires the presence of the socketpair(2) function.
It was already using it anyways.
* Use of some system calls with portability issues encapsulated in
wrapper functions. [SW]
* sql() returns error codes directly instead of notifying %!. [SW]
Functions:
* lattr() and lattrp() take an optional delimiter argument. Suggested
by Nathan Baum. [SW]
* New csecs() and msecs() functions, like ctime() and mtime() but
returning the time in seconds instead of a formatted string. Based on
a patch by Talvo.
* ctime() and mtime() take an optional second argument to control which
time zone the time is displayed for: UTC or the server's. [SW]
* fn() by Javelin
* letq(). Suggested by Nathan Baum. [SW]
Fixes:
* Assorted compiler warning fixes. [SW]
* Compile fix on OS X 10.3. Reported by Viila. [SW]
* @sql wasn't enabled if Sqlite3 was the only database turned on.
Reported by qa'toq.
* Problems with sql() using Sqlite3. Reported by qa'toq. [SW]
* Problems with null queries using MySQL. Reported by duckwa. [SW]
* Start fixing code that assumes that int and long are the same
size. [SW]
* Linting of code that uses strcpy, strncpy() and sprintf() to
rule out remote possibilities of buffer overflows. [SW]
* align() off-by-one error in left coalescing fixed. Reported by
Sketch. [Javelin]
* User locks were broken in the last patch. Reported by Michael Brazaitis.
[SW]
* ./configure --without-ssl works. Reported by Starr. [SW]
* objid matcher didn't work properly. [SW]
* Many functions that used parse_dbref updated to use parse_objid,
to see more objid compliance. [GM]
* Fixes from 1.8.2p5
Version 1.8.3 patchlevel 2 May 16, 2007
Major changes:
* configuration is now done by autoconf. ./Configure is
now ./configure and its options have changed. See
INSTALL and ./configure --help [SW]
* Support for the postgresql SQL server. Javelin.
* Support for sqlite3 SQL databases. [SW]
Minor changes:
* You can no longer run a mush as root. [SW]
* cemit_noisy config option. Suggested by Kimiko. [SW]
* @function sorts the list of user-defined functions
by object and then name. Suggested by Trinsec. [SW]
* Better logging of the register login screen command
for systems without a sendmail program. [SW]
* Assorted refactoring of source code. [SW]
Functions:
* isobjid(). By Balerion.
* player() returns the dbref of the player connected to a given
port. By Nathan Baum.
* root(X,3) uses the C cbrt() function if available. [SW]
* New formats for align() that allow flowing text. Javelin.
* isdbref() understands objids. By Balerion.
Fixes:
* regmatch() broken with %q-registers. Javelin.
* Better checking of dbref config options to make sure they're
valid objects. Suggested by Talvo. [SW]
* Fixed assorted cases of accidently modifying const objects.
Thanks to Jake. [SW]
* Fixed a crash bug in strmatch(). [GM]
* wrap() of Pueblo tags didn't work very well. Fixed by
Sketch.
* @wipe's count is accurate when attribute trees are being
deleted. Reported by Talvo.
Version 1.8.3 patchlevel 1 March 11, 2007
Minor changes:
* page command now processes page output through PAGEFORMAT
attribute, allowing user-set page messages. [GM]
* sql_host configuration option now permits alternate tcp port.
Suggested by Mercutio. Patch by Javelin.
* Refactoring of fun_stringsecs to help function etime_to_secs.
Patch by Javelin.
* %1 in @aconnect works like in @adisconnect. Patch by Javelin.
Fixes:
* restart script once again includes DATEMSK export for
extended convtime support. Reported by KimikoMuffin.
* Memory leak in 1.8.3p0 regedit fixed.
* Fixes included from 1.8.2p3.
* Document change in @chan/title behavior with commas.
Version 1.8.3 patchlevel 0 January 27, 2007
Major changes:
* Rewrite of color handling. [GM]
Minor changes:
* Cleaned up the internals of @wipe. [SW]
* strmatch() now takes a third argument, to store wildcard captures. [GM]
* Termination of OS/2 support. [SW]
Fixes:
* Fixes included from versions up to 1.8.2p2.