| 1 |
|
|---|
| 2 |
This is the most current changes file for PennMUSH. Please look it |
|---|
| 3 |
over; each version contains new things which might significantly affect |
|---|
| 4 |
the function of your server. Changes are reported in reverse |
|---|
| 5 |
chronological order (most recent first) |
|---|
| 6 |
|
|---|
| 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 |
[GM] is Greg Millam, a PennMUSH developer (aka Walker) |
|---|
| 11 |
[3] refers to code by (or inspired by) TinyMUSH 3.0 |
|---|
| 12 |
[MUX] refers to code by (or inspired by) TinyMUX 2.x |
|---|
| 13 |
[Rhost] refers to code by (or inspired by) RhostMUSH |
|---|
| 14 |
|
|---|
| 15 |
========================================================================== |
|---|
| 16 |
|
|---|
| 17 |
Version 1.8.3 patchlevel 7 ??? ??, 2008 |
|---|
| 18 |
|
|---|
| 19 |
Fixes: |
|---|
| 20 |
* Compilation fixes on various platforms. [SW] |
|---|
| 21 |
* @chan/what reports the number of actual lines stored in |
|---|
| 22 |
recall buffers, not the number of blocks. Reported by |
|---|
| 23 |
qa'toq [SW] |
|---|
| 24 |
|
|---|
| 25 |
Version 1.8.3 patchlevel 6 Jan 01, 2008 |
|---|
| 26 |
|
|---|
| 27 |
Major changes: |
|---|
| 28 |
* If configure finds a copy of the pcre library installed, that will |
|---|
| 29 |
be used instead of the (old) version bundled with Penn. use |
|---|
| 30 |
--with-pcre=/path/to/it if it's not in the usual places, or |
|---|
| 31 |
--with-pcre=no to force use of the bundled version. |
|---|
| 32 |
|
|---|
| 33 |
Minor changes: |
|---|
| 34 |
* @sitelock when there are no rules will now say that instead of |
|---|
| 35 |
having no output. By Talvo. |
|---|
| 36 |
* Log files use locking to prevent the small chance of more than one |
|---|
| 37 |
process writing to the same error log at the same time. |
|---|
| 38 |
* info_slave's logging is more clear as to its source. |
|---|
| 39 |
* Several places that used the select() system call now favor poll() |
|---|
| 40 |
and/or socket timeouts instead. (The main event loop still uses |
|---|
| 41 |
select() for now.) |
|---|
| 42 |
* A wildcard help topic search (help foo*) that only matches one |
|---|
| 43 |
entry will display that entry. Suggested by Cheetah. |
|---|
| 44 |
* New switches for commands no longer have to be added to the |
|---|
| 45 |
SWITCHES file; the internal list of switches is now built based on |
|---|
| 46 |
what switches are given in the command table and cmdlocal.c |
|---|
| 47 |
additions. Suggested by Talek. |
|---|
| 48 |
|
|---|
| 49 |
|
|---|
| 50 |
Flags and powers: |
|---|
| 51 |
* The announce power now also grants the ability to change the motd. |
|---|
| 52 |
Suggested by Yuriko. |
|---|
| 53 |
* New hook power grants rights to use @hook. Suggested by Paige. |
|---|
| 54 |
* Windows compile fixes by Intrevis. |
|---|
| 55 |
|
|---|
| 56 |
Commands: |
|---|
| 57 |
* @motd gives better feedback when clearing a message. |
|---|
| 58 |
* The @tport/@otport/@atport/etc. attributes that get evalulated on a |
|---|
| 59 |
@teleport now get the dbref of the object doing the teleport in %0 |
|---|
| 60 |
and the teleported object's old location in %1. Suggested by Daniel |
|---|
| 61 |
Cheng. |
|---|
| 62 |
|
|---|
| 63 |
Functions: |
|---|
| 64 |
* root() uses an improved algorithm to give a more precise |
|---|
| 65 |
result. |
|---|
| 66 |
* log(N,2) uses the C log2() function if available. |
|---|
| 67 |
* log(N,e) takes the natural logarithm of N, like ln(). |
|---|
| 68 |
* lports() now takes an optional viewer argument, a la lwho(). By |
|---|
| 69 |
Talvo. |
|---|
| 70 |
|
|---|
| 71 |
Fixes: |
|---|
| 72 |
* Typo in info_slave preventing simultaneous hostname lookups fixed. |
|---|
| 73 |
* Compiliation fix with some compilers. Reported by Kimiko. |
|---|
| 74 |
* ident lookups of new connections was broken for several |
|---|
| 75 |
patchlevels. Works again. Sometimes. |
|---|
| 76 |
* Cleaned up some warnings generated by gcc 4.2 |
|---|
| 77 |
* Fixed some minor bugs detected by running under valgrind. |
|---|
| 78 |
* OpenBSD configuration fixes. |
|---|
| 79 |
|
|---|
| 80 |
Version 1.8.3 patchlevel 5 October 6, 2007 |
|---|
| 81 |
|
|---|
| 82 |
Major changes: |
|---|
| 83 |
* Significant rewrite of ansi parsing and better ansi support |
|---|
| 84 |
for many string-handling functions. Patch by Sketch. |
|---|
| 85 |
* Rewrite of the softcode regression testing framework, and |
|---|
| 86 |
addition of more tests. [SW] |
|---|
| 87 |
|
|---|
| 88 |
Minor changes: |
|---|
| 89 |
* Store a pointer to the start of a player's mailbox in objdata |
|---|
| 90 |
instead of the connection struct. |
|---|
| 91 |
* Experimental rewrite of hash tables to use the cuckoo hashing |
|---|
| 92 |
algorithm, with constant-time lookups even in the worst case. |
|---|
| 93 |
(And appears to have generally faster lookup even in normal usage.) |
|---|
| 94 |
* Regular expression @sitelocks save the compiled regexp instead of |
|---|
| 95 |
recompiling every time the rule is tested. |
|---|
| 96 |
* Added %4 to @pageformat, which is the default page message. |
|---|
| 97 |
|
|---|
| 98 |
Commands: |
|---|
| 99 |
* Added @message, which makes it easy to use @chatformat or |
|---|
| 100 |
@pageformat via @hooks, or to create your own *format. |
|---|
| 101 |
|
|---|
| 102 |
Functions: |
|---|
| 103 |
* Added message(), the function version of @message. |
|---|
| 104 |
|
|---|
| 105 |
Fixes: |
|---|
| 106 |
* decode64() does better validation of its input. [SW] |
|---|
| 107 |
* Various compile fixes reported by Interevis and Kimiko. |
|---|
| 108 |
Win32 patched by Intrevis. |
|---|
| 109 |
* @sitelock does better error reporting. [SW] |
|---|
| 110 |
* Crash bug related to regeditall fixed. |
|---|
| 111 |
* @decompile didn't handle attribute trees correctly. |
|---|
| 112 |
* Compile failure in funstr.c on some systems. Fixed by Boris. |
|---|
| 113 |
* '@set =foo' failed silently. Reported by Talvo. |
|---|
| 114 |
* Fixes from 1.8.2p7 |
|---|
| 115 |
|
|---|
| 116 |
Version 1.8.3 patchlevel 4 July 9, 2007 |
|---|
| 117 |
|
|---|
| 118 |
Major changes: |
|---|
| 119 |
* Parts of the build process that used a shell script to regenerate |
|---|
| 120 |
certain headers now use perl scripts instead, making them much |
|---|
| 121 |
faster. [SW] |
|---|
| 122 |
|
|---|
| 123 |
Minor changes: |
|---|
| 124 |
* The hash tables used by lmath() and html functions now |
|---|
| 125 |
use perfect hashing to speed up lookups. [SW] |
|---|
| 126 |
* The various slab allocators used by attributes and locks |
|---|
| 127 |
and other areas have been replaced with a generic |
|---|
| 128 |
slab allocator. Also, many more allocations are handled |
|---|
| 129 |
by the new code. |
|---|
| 130 |
* Use the writev() system call to send data to unencrypted |
|---|
| 131 |
connections in bigger chunks instead of using multiple send()s of |
|---|
| 132 |
smaller chunks. |
|---|
| 133 |
* New lock types can be added via src/local.c instead of having to |
|---|
| 134 |
alter the table in src/locks.c. Based on patch by Talvo. |
|---|
| 135 |
* Builtin lock names and default flags are stored in a hash table |
|---|
| 136 |
instead of a list. [SW] |
|---|
| 137 |
|
|---|
| 138 |
Attributes: |
|---|
| 139 |
* @chatformat allows you to customize Channel chat messages |
|---|
| 140 |
that you see. [GM] |
|---|
| 141 |
|
|---|
| 142 |
Commands: |
|---|
| 143 |
* '@list allocations' displays allocation information. |
|---|
| 144 |
* @stats/tables no longer dumps mem_check information. |
|---|
| 145 |
* @search (and by relation search()) now has an 'elock' |
|---|
| 146 |
search class, permitting boolean expression searches. [GM] |
|---|
| 147 |
* @channel/recall extended to support recalling by time. Example: |
|---|
| 148 |
'@chan/recall Foo=1h' will recall lines only from the past |
|---|
| 149 |
hour. Patch by Talvo. |
|---|
| 150 |
|
|---|
| 151 |
Functions: |
|---|
| 152 |
* cond() works like an if, else if, else if ... ncond(), |
|---|
| 153 |
condall(), ncondall() also added. [GM] |
|---|
| 154 |
* speak() accepts a 1st argument beginning with '&' to use |
|---|
| 155 |
an arbitrary speaker name. [GM] |
|---|
| 156 |
* New speakpenn() function handles : <pose> in Penn style. |
|---|
| 157 |
Suggested by Sketch, patch by Javeln. |
|---|
| 158 |
* lmath() accepts dist2d and dist3d. Suggested by Jess. |
|---|
| 159 |
* functions(local) returns just local @functions. [SW] |
|---|
| 160 |
* New encode64() and decode64() functions convert between |
|---|
| 161 |
normal text and base64 encoded text on games that have |
|---|
| 162 |
SSL support compiled in. [SW] |
|---|
| 163 |
* encrypt() and decrypt() now take an optional 3rd argument |
|---|
| 164 |
to control using base 64 encoding. Suggested by Noltar. |
|---|
| 165 |
|
|---|
| 166 |
Fixes: |
|---|
| 167 |
* Compile fixes for some linux (And other?) systems that expect |
|---|
| 168 |
all libraries to be after source files on the command line |
|---|
| 169 |
when linking. Reported by Balerion. |
|---|
| 170 |
* Compile fix for some Postgresql installations. Reported by |
|---|
| 171 |
Nymeria. |
|---|
| 172 |
* Fix to fraction() when dealing with numbers that can't |
|---|
| 173 |
be fractioned. Discovered by Ashen-Shugar. |
|---|
| 174 |
* Fixes to align() and coalescing by Javelin. Bugs reported by |
|---|
| 175 |
Sketch and tramp. |
|---|
| 176 |
* Fixes to speak() to bring it closer to Tiny's behavior in |
|---|
| 177 |
common cases by Sketch and Javelin. |
|---|
| 178 |
* Fixes to ANSI output where extra ^[[m were being sent. |
|---|
| 179 |
* Default flags weren't getting set on some attributes in certain |
|---|
| 180 |
cases. Report by Talvo. |
|---|
| 181 |
* Fixes from 1.8.2p6 |
|---|
| 182 |
|
|---|
| 183 |
Version 1.8.3 patchlevel 3 June 13, 2007 |
|---|
| 184 |
|
|---|
| 185 |
Minor changes: |
|---|
| 186 |
* The sockets used to talk to info_slave changed from streams |
|---|
| 187 |
to datagrams, simplifying code. [SW] |
|---|
| 188 |
* info_slave deals better with simultaneous connections. [SW] |
|---|
| 189 |
* info_slave requires the presence of the socketpair(2) function. |
|---|
| 190 |
It was already using it anyways. |
|---|
| 191 |
* Use of some system calls with portability issues encapsulated in |
|---|
| 192 |
wrapper functions. [SW] |
|---|
| 193 |
* sql() returns error codes directly instead of notifying %!. [SW] |
|---|
| 194 |
|
|---|
| 195 |
Functions: |
|---|
| 196 |
* lattr() and lattrp() take an optional delimiter argument. Suggested |
|---|
| 197 |
by Nathan Baum. [SW] |
|---|
| 198 |
* New csecs() and msecs() functions, like ctime() and mtime() but |
|---|
| 199 |
returning the time in seconds instead of a formatted string. Based on |
|---|
| 200 |
a patch by Talvo. |
|---|
| 201 |
* ctime() and mtime() take an optional second argument to control which |
|---|
| 202 |
time zone the time is displayed for: UTC or the server's. [SW] |
|---|
| 203 |
* fn() by Javelin |
|---|
| 204 |
* letq(). Suggested by Nathan Baum. [SW] |
|---|
| 205 |
|
|---|
| 206 |
Fixes: |
|---|
| 207 |
* Assorted compiler warning fixes. [SW] |
|---|
| 208 |
* Compile fix on OS X 10.3. Reported by Viila. [SW] |
|---|
| 209 |
* @sql wasn't enabled if Sqlite3 was the only database turned on. |
|---|
| 210 |
Reported by qa'toq. |
|---|
| 211 |
* Problems with sql() using Sqlite3. Reported by qa'toq. [SW] |
|---|
| 212 |
* Problems with null queries using MySQL. Reported by duckwa. [SW] |
|---|
| 213 |
* Start fixing code that assumes that int and long are the same |
|---|
| 214 |
size. [SW] |
|---|
| 215 |
* Linting of code that uses strcpy, strncpy() and sprintf() to |
|---|
| 216 |
rule out remote possibilities of buffer overflows. [SW] |
|---|
| 217 |
* align() off-by-one error in left coalescing fixed. Reported by |
|---|
| 218 |
Sketch. [Javelin] |
|---|
| 219 |
* User locks were broken in the last patch. Reported by Michael Brazaitis. |
|---|
| 220 |
[SW] |
|---|
| 221 |
* ./configure --without-ssl works. Reported by Starr. [SW] |
|---|
| 222 |
* objid matcher didn't work properly. [SW] |
|---|
| 223 |
* Many functions that used parse_dbref updated to use parse_objid, |
|---|
| 224 |
to see more objid compliance. [GM] |
|---|
| 225 |
* Fixes from 1.8.2p5 |
|---|
| 226 |
|
|---|
| 227 |
Version 1.8.3 patchlevel 2 May 16, 2007 |
|---|
| 228 |
|
|---|
| 229 |
Major changes: |
|---|
| 230 |
* configuration is now done by autoconf. ./Configure is |
|---|
| 231 |
now ./configure and its options have changed. See |
|---|
| 232 |
INSTALL and ./configure --help [SW] |
|---|
| 233 |
* Support for the postgresql SQL server. Javelin. |
|---|
| 234 |
* Support for sqlite3 SQL databases. [SW] |
|---|
| 235 |
|
|---|
| 236 |
Minor changes: |
|---|
| 237 |
* You can no longer run a mush as root. [SW] |
|---|
| 238 |
* cemit_noisy config option. Suggested by Kimiko. [SW] |
|---|
| 239 |
* @function sorts the list of user-defined functions |
|---|
| 240 |
by object and then name. Suggested by Trinsec. [SW] |
|---|
| 241 |
* Better logging of the register login screen command |
|---|
| 242 |
for systems without a sendmail program. [SW] |
|---|
| 243 |
* Assorted refactoring of source code. [SW] |
|---|
| 244 |
|
|---|
| 245 |
Functions: |
|---|
| 246 |
* isobjid(). By Balerion. |
|---|
| 247 |
* player() returns the dbref of the player connected to a given |
|---|
| 248 |
port. By Nathan Baum. |
|---|
| 249 |
* root(X,3) uses the C cbrt() function if available. [SW] |
|---|
| 250 |
* New formats for align() that allow flowing text. Javelin. |
|---|
| 251 |
* isdbref() understands objids. By Balerion. |
|---|
| 252 |
|
|---|
| 253 |
Fixes: |
|---|
| 254 |
* regmatch() broken with %q-registers. Javelin. |
|---|
| 255 |
* Better checking of dbref config options to make sure they're |
|---|
| 256 |
valid objects. Suggested by Talvo. [SW] |
|---|
| 257 |
* Fixed assorted cases of accidently modifying const objects. |
|---|
| 258 |
Thanks to Jake. [SW] |
|---|
| 259 |
* Fixed a crash bug in strmatch(). [GM] |
|---|
| 260 |
* wrap() of Pueblo tags didn't work very well. Fixed by |
|---|
| 261 |
Sketch. |
|---|
| 262 |
* @wipe's count is accurate when attribute trees are being |
|---|
| 263 |
deleted. Reported by Talvo. |
|---|
| 264 |
|
|---|
| 265 |
Version 1.8.3 patchlevel 1 March 11, 2007 |
|---|
| 266 |
|
|---|
| 267 |
Minor changes: |
|---|
| 268 |
* page command now processes page output through PAGEFORMAT |
|---|
| 269 |
attribute, allowing user-set page messages. [GM] |
|---|
| 270 |
* sql_host configuration option now permits alternate tcp port. |
|---|
| 271 |
Suggested by Mercutio. Patch by Javelin. |
|---|
| 272 |
* Refactoring of fun_stringsecs to help function etime_to_secs. |
|---|
| 273 |
Patch by Javelin. |
|---|
| 274 |
* %1 in @aconnect works like in @adisconnect. Patch by Javelin. |
|---|
| 275 |
|
|---|
| 276 |
Fixes: |
|---|
| 277 |
* restart script once again includes DATEMSK export for |
|---|
| 278 |
extended convtime support. Reported by KimikoMuffin. |
|---|
| 279 |
* Memory leak in 1.8.3p0 regedit fixed. |
|---|
| 280 |
* Fixes included from 1.8.2p3. |
|---|
| 281 |
* Document change in @chan/title behavior with commas. |
|---|
| 282 |
|
|---|
| 283 |
Version 1.8.3 patchlevel 0 January 27, 2007 |
|---|
| 284 |
|
|---|
| 285 |
Major changes: |
|---|
| 286 |
* Rewrite of color handling. [GM] |
|---|
| 287 |
|
|---|
| 288 |
Minor changes: |
|---|
| 289 |
* Cleaned up the internals of @wipe. [SW] |
|---|
| 290 |
* strmatch() now takes a third argument, to store wildcard captures. [GM] |
|---|
| 291 |
* Termination of OS/2 support. [SW] |
|---|
| 292 |
|
|---|
| 293 |
Fixes: |
|---|
| 294 |
* Fixes included from versions up to 1.8.2p2. |
|---|